#!/usr/bin/env python
#-*- coding:utf-8 -*-##
##python內建方法
class
a: n = "a"
deff2(self):
print("
from a")
class
b(a):
n = "b"
deff1(self):
print("
from b")
#def f2(self):
#print("f2 from b")
class
c(a):
n = "c"
deff2(self):
print("
from c")
class
d(b,c):
#def __new__(cls, *args, **kwargs):#初始化類中所有構造方法,如果這樣重寫了那麼就只會執行重寫的這個方法,需要再呼叫類中的其它方法就會報錯
#print("--new--")
def__init__
(self):
print("
__init__")
self.n = 4
def__call__(self, *args, **kwargs):
print("
__call__")
'''test doc
'''#
def __del__(self):#在程式執行完後會在記憶體中自動銷毀
#print("deleteing the ....")
pass
#1、繼承類的優先順序
#d = d()
#d.f1()
#d.f2()#按照先去找b,沒有的話再去找c,c沒有的話再去找a。按照廣度優先的原則
#在老版本中經典類按照深度優先,新式類按照廣度優先,但是在3.0後無論經典類還是新式類全都按照廣度優先,因此上圖雖然是經典類但是還是廣度優先
#2、類中的內建方法
#d = d()
#print(d.__doc__) #列印出類中的字串,可以用來注釋
#print(d.__module__)#列印模組所在的檔案的名字
#obj = d() #執行__init__
#obj() #執行__call__
#print(obj.__new__):#初始化類中所有構造方法,如果這樣重寫了那麼就只會執行重寫的這個方法,需要再呼叫類中的其它方法就會報錯
#print(obj.__dict__)#將類的成員變數以字典的形式列印出來,不會列印例項變數
#metaclasses 比new都還要底層的類,如果重寫類就用到,基本不會用到
#3、類的構造 類是由type構造的
#wohaoshuai = type("wohaoshuai",(),)
#print(type(wohaoshuai)) #
#a = wohaoshuai()
#print(a.test) #123
python 類的內建方法
1.doc 列印類的備註 class animal object 建立動物類 def run self 動物都會跑 pass a animal 列印animal類的備註 print a.doc 2.call 將類進行例項化後,呼叫該例項時,會執行 call 方法。注意 類中無 call 方法時,例項...
Python 類的常用內建方法
凡是在類內部定義,以 開頭 結尾的方法,都是類的內建方法,類的內建方法,會在滿足某種條件下自動觸發。new 在 init 觸發前,自動觸發。呼叫該類時,內部會通過 new 產生乙個新物件 init 在呼叫類時自動觸發。通過產生的物件自動呼叫 init class demo object 條件 new...
python內建類 Python 類的內建方法
usr bin env python coding utf 8 python內建方法 class a n a def f2 self print from a class b a n b def f1 self print from b def f2 self print f2 from b cla...