如圖的繼承關係,然後驗證經典類與新式類在查詢乙個屬性時的搜尋順序
class b:
# def test(self):
# print("from b")
pass
class c:
# def test(self):
# print("from c")
pass
class d(b,c):
# def test(self):
# print("from d")
pass
class e(b,c):
def test(self):
print("from e")
pass
class f(d,e):
# def test(self):
# print("from f")
pass
f = f()
f.test()
# new class (廣度優先)
''' f==>d==>e==>b==>c '''
# classical class (深度優先)
''' f==>d==>b==>c==>e '''
基於多型的概念來實現linux中一切皆問題的概念:文字檔案,程序,磁碟都是檔案,然後驗證多型性
class file(object):
def __init__(self,contents):
self.contents = contents
def cat(self):
print("contents:%s"%(self.contents))
class process(file):
file_type = 'pid'
def cat(self):
print("file_type : %s" %self.file_type)
#三種方法 呼叫父類物件,1.super附帶當前類名、self代表父類 2.super不附帶任何引數 3.父類.方法(self)
super(process, self).cat()
#super().cat()
# file.cat(self)
class disk(file):
file_type = 'disk'
def cat(self):
print("file_type : %s" %self.file_type)
#三種方法 呼叫父類物件,1.super附帶當前類名、self代表父類 2.super不附帶任何引數 3.父類.方法(self)
super(disk, self).cat()
#super().cat()
# file.cat(self)
def cat_file(obj):
''' 呼叫函式繫結方法 '''
obj.cat()
proc1 = process("some things")
disk1 = disk("disgusting things")
cat_file(proc1)
cat_file(disk1)
定義老師類,把老師的屬性:薪資,隱藏起來,然後針對該屬性開放訪問介面
苑昊老師有多種癖好,把這種癖好隱藏起來,然後對外提供訪問介面
而且以後還會苑昊老師培養很多其他的癖好,對外開放修改介面,可以新增癖好,並且需要保證新增的癖好都是字串型別,否則無法增加成功。
class teacher(object):
__salary = 100
__hobby = ["kiss egon's ass","和egon睡覺"]
def __init__(self,name,age,):
self.name,self.age = name,age
def get_salary(self):
return self.__salary
def get_hobby(self):
for x in self.__hobby:
yield x
def add_hobby(self,new_hobby):
if type(new_hobby) == str:
else:
print("error!")
t = teacher("苑昊", 16)
print(t.get_salary())
print("[",t.name,"]","hobby list\n-----")
for x in t.get_hobby():
print(x)
print("-----")
t.add_hobby("**")
print(t.get_salary())
print("[",t.name,"]","hobby list\n-----")
for x in t.get_hobby():
print(x)
print("-----")
Python 物件導向基礎01
當有乙個問題擺在我面前,傳統思路是我親自上陣,把問題解決。下一次當類似的問題再次出現時,我再上,再解決。如此重複,不知道什麼時候是個頭。寫程式也是這樣,面對類似的問題時,如果每次都是從零開始,工作學習的效率將會十分低下,因為總是在重複相同的工作。物件導向則把我從執行者的角色公升級為了指揮者。我不用再...
物件導向 01
我是lgm hakka,請多多指教。1 面向過程 以函式為基礎,強調的是過程。強調這個方法有什麼功能 如 c語言。2 物件導向 物件導向是基於面向過程的,以物件為基礎,強調的是結果。強調物件呼叫方法能完成怎麼樣的功能 1 物件導向的特點 a 一種更符合人們思考習慣的思想 能懶就懶 b 能把複雜的問題...
物件導向01
1.物件導向和面向過程 面向過程 以我為中心,按照事物的發展流程 小型指令碼程式合適用面向過程 萬事萬物皆為物件 object 大型專案合適物件導向 2.如何編寫物件導向的程式 先建立類.對某些事物進行總結.相當於圖紙 使用類建立物件 class 類名 object def init self,na...