PYTHON類的特殊方法

2021-06-07 20:14:28 字數 2268 閱讀 8750

例項1:

[python]view plain

copy

#-*-coding:utf-8-*-

class  firstdemo(object):  

"""這裡是乙個doc

"""a=10

#類屬性

def  demo(self):  

"""第乙個方法

"""pass

def demo2(self):  

"""第二個方法

"""pass

print firstdemo.__dict__   #列印出firstdemo類的所有屬性和方法,結果為乙個字典

print firstdemo.__bases__  #類的基類

print firstdemo.__doc__    #類的docstring

print firstdemo.__name__   #類的名字

print firstdemo.__module__ #類所在模組,如果是主檔案,就是__main__

print firstdemo().__class__    #類的型別

print firstdemo().__module__   #例項型別所在模組

print firstdemo().__dict__     #物件的字典,儲存所有例項成員資訊

例項2:

[python]view plain

copy

#-*-coding:utf-8-*-

class  firstdemo(object):  

b=100

#類屬性

def __init__(self):  

firstdemo.b=200

[python]view plain

copy

def __repr__(self):  

return

"repr方法"

def __str__(self):  

return

"str方法"

def  demo(self):  

print firstdemo.b  

a=firstdemo()  

print a.__repr__()  

print a.__str__()  

print

"--------"

a.demo()  

結果:repr方法

str方法

--------

200序號

目的所編寫**

python 實際呼叫

①初始化乙個例項

x = myclass()x.__init__()

②字串的「官方」表現形式

repr(x)x.__repr__()

③字串的「非正式」值

str(x)x.__str__()

最後列印的b的值為200,是因為__init__()方法的呼叫發生在例項被建立之後。

例項3(物件屬性的操作):

[python]view plain

copy

#-*-coding:utf-8-*-

class  firstdemo(object):  

b=100

#類屬性

def __init__(self):  

firstdemo.b=200

def __repr__(self):  

return

"repr方法"

def __str__(self):  

return

"str方法"

def  demo(self):  

print firstdemo.b  

a=firstdemo()  

a.temp=500

#為物件新增乙個屬性

print a.__dict__  #檢視物件的例項屬性字典

print dir(a)   #列出例項的屬性和方法集合

del a.temp  #刪除物件中的temp屬性

print a.__dict__  

print dir(a)

Python類的特殊方法

doc描述類的資訊 class foo object 單引號和雙引號都可以 這裡描述類的資訊 def func self passprint foo.doc 這裡描述類的資訊 call物件後面加括號,觸發執行 class foo object defcall self,args,kwargs pri...

Python類的特殊方法

特殊方法,也稱為魔術方法 特殊方法都是使用 開頭和結尾的 特殊方法一般不需要我們手動呼叫,需要在一些特殊情況下自動執行 定義乙個person類 class person object 人類 def init self,name age self.name name self.age age str ...

Python面試 類的特殊方法

class foo def init self print foo init def call self print foo call f foo f 過載了括號運算子 foo init foo call class decorator def init self,func print decora...