python物件導向程式設計基礎

2021-07-09 18:44:54 字數 2152 閱讀 3241

python物件導向程式設計基礎:

1、類的建立和例項化

2、繼承、多型、多重繼承

類的繼承是一種縱向的關係,def class(baseclass),class類繼承baseclass,擁有baseclass的屬性和方法

3、類的組合

類的組合是一種橫向關係

4、內部屬性

由於python語言沒有public、private這樣的關鍵字定義屬性是公有還是私有的,所以如果使用普通變數命名屬性就可以被外部任意呼叫和修改,這顯然是不安全的。python採用了一種name mangling機制,在類的屬性命名前加上『__』則外部就不可訪問該屬性名,但是內部可以訪問和呼叫

#coding:utf-8

'''oop 物件導向程式設計

類的建立

類的例項化

繼承、多型、多重繼承

組合類的屬性和方法是靜態的

內部屬性,不允許外部訪問和修改,在屬性名前加'__',這是乙個name manling,在python中,例項的變數名如果以__開頭,就變成了乙個私有變數(private),只有內部可以訪問,外部不能訪問

既然內部可以訪問,如果我們確實需要修改屬性,則可以建立內部的修改屬性方法

'''class

user:

''' 定義乙個使用者類

'''def__init__

(self,name,age):

self.__name=name

self.age=age

defsetname

(self,name):

self.__name=name

defgetname

(self):

print('我的名字是:%s' %self.__name)

defgetage

(self):

print('我的年齡是:%d歲' %self.age)

user1=user('四明',30)

user1.getname()

user1.__name='這樣子是改不了的'

#改不了name屬性了

user1.getname()

user1.setname('這樣子就可以改了')

user1.getname()

user2=user('python',2)

user2.getname()

user2.getage()

user2.age=20

user2.getage()

# 繼承和多型

# 多型就是說同乙個方法對於不同的類可以有不同的實現

class

animal:

def__init__

(self,name,legs):

self.__legs=legs

self.__name=name

defgetname

(self):

return self.__name

defprintinfo

(self):

print('我是%s,我有%d條腿' %(self.__name,self.__legs))

defshout

(self):

pass

#animal定義了乙個模版

class

cat(animal):

defshout

(self):

print("喵喵喵...") #重寫父類的shout方法

class

dog(animal):

defshout

(self):

print("汪汪汪...") #重寫父類的shout方法

defrun

(animal):

print('%s is running...'%animal.getname())

# 建立cat和dog的例項

cat1=cat('喵星人',4)

dog1=dog('汪星人',5)

cat1.printinfo()

cat1.shout()

dog1.printinfo()

dog1.shout()

run(cat1)

run(dog1) #這就是一種多型,傳入不同的物件會有不同的表現

python物件導向程式設計基礎

一 基礎例項 class car def init self,make,model,year 初始化描述汽車的屬性 self.make make self.model model self.year year self.odometer reading 0 如果對屬性設定預設值,那麼括號裡面就不需要...

python基礎 物件導向程式設計

物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...

物件導向程式設計基礎

當類中的成員變數與成員方法中的引數重名時,使用this,來使用類中的成員變數 不用的話,就是成員方法中的引數 public class test public static void main string args 123 system.out.println this.name abc無參構造方...