日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【面向对象】类的特殊成员方法

發(fā)布時(shí)間:2025/3/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面向对象】类的特殊成员方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. __doc__:表示類的描述信息

class Foo(object):'''描述信息'''def func(self):pass print(Foo.__doc__)>>>描述信息

2.?__module__ 和 ?__class__ :

__module__ 表示當(dāng)前操作的對(duì)象在哪個(gè)個(gè)模塊

__class__ ? ? 表示當(dāng)前操作的對(duì)象的類是什么

3. __init__ :構(gòu)造方法,通過類創(chuàng)建對(duì)象時(shí),自動(dòng)觸發(fā)執(zhí)行

4.__del__: 析構(gòu)方法,當(dāng)對(duì)象在內(nèi)存中被釋放時(shí),自動(dòng)觸發(fā)執(zhí)行

5. __call__ :對(duì)象后面加括號(hào),觸發(fā)執(zhí)行

class Foo(object):'''描述信息'''def __call__(self, *args, **kwargs):print('call')a=Foo()# 執(zhí)行 __init__

a()?# 執(zhí)行 __call__ >>>call

6. __dict__ :查看類或?qū)ο笾械乃谐蓡T?

通過類調(diào)用:打印類的所有屬性,不包括實(shí)例屬性

class Foo(object):def __init__(self,name,age):self.name=nameself.age=agedef func(self):print('this is a function')print(Foo.__dict__)>>> {'__module__': '__main__', '__init__': <function Foo.__init__ at 0x02FACBB8>, 'func': <function Foo.func at 0x02FACB70>, '__dict__': <attribute '__dict__' of 'Foo' objects>, '__weakref__': <attribute '__weakref__' of 'Foo' objects>, '__doc__': None}

通過實(shí)例調(diào)用:打印所有實(shí)例屬性,不包括類屬性

f=Foo('q1ang',25) print(f.__dict__) >>> {'name': 'q1ang', 'age': 25}

?7.__str__: 如果一個(gè)類中定義了__str__方法,那么在打印 對(duì)象 時(shí),默認(rèn)輸出該方法的返回值

?

class Foo(object):def __init__(self,name,age):self.name=nameself.age=agedef __str__(self):print('this is a function')return 'return' f=Foo('q1ang',25) print(f) >>> this is a function return

8.__getitem__、__setitem__、__delitem__:

   用于索引操作,如字典。以上分別表示獲取、設(shè)置、刪除數(shù)據(jù)

class Foo(object):def __getitem__(self, key):#獲取print('__getitem__', key)def __setitem__(self, key, value):#設(shè)置print('__setitem__', key, value)def __delitem__(self, key):#刪除print('__delitem__', key)obj = Foo()result = obj['k1'] # 自動(dòng)觸發(fā)執(zhí)行 __getitem__ obj['k2'] = 'q1ang' # 自動(dòng)觸發(fā)執(zhí)行 __setitem__ del obj['k1'] >>> __getitem__ k1 __setitem__ k2 q1ang __delitem__ k1

?9. __new__ \ __metaclass__:

class Foo(object):def __init__(self, name):self.name = namef = Foo('q1ang')print(type(f)) print(type(Foo)) >>> <class '__main__.Foo'> <class 'type'>

f對(duì)象是Foo類的一個(gè)實(shí)例Foo類對(duì)象是 type 類的一個(gè)實(shí)例,即:Foo類對(duì)象 是通過type類的構(gòu)造方法創(chuàng)建

創(chuàng)建類就可以有兩種方式:

普通方式

class Foo(object):

def func(self):
print('hello word')

特殊方式:

def func(self):print('hello word')Foo = type('Foo', (object,), {'func': func})

?

轉(zhuǎn)載于:https://www.cnblogs.com/q1ang/p/9074763.html

總結(jié)

以上是生活随笔為你收集整理的【面向对象】类的特殊成员方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。