python講解類的特殊成員方法

2022-06-13 05:03:11 字數 1355 閱讀 8656

class dog(object):

''' 這個類是描述狗這個物件的'''

def __init__(self,name):

self.name = name

@staticmethod#實際上跟類沒有什麼關係了。eat和類的關係截斷了,只是類下面函式

#靜態方法:只是名義上歸類管理,實際上在靜態方法裡訪問不了類或例項中的任何屬性

def eat(self):

print('%s is eating %s'%(self.name,'dd'))

def __call__(self, *args, **kwargs):

print("runing all",args,kwargs)

def __str__(self):#__str__ 如果乙個類中定義了__str__方法,那麼在列印 物件 時,預設輸出該方法的返回值

return "dog %s"%self.name

d = dog('testing')

d(1,2,3,["name","age"])

print(d)

# print(dog.__dict__)#類呼叫,列印類裡面所有屬性

# print(d.__dict__)#列印所有例項屬性,不包括類屬性

# print(dog.__doc__)#顯示描述資訊

# from day7.屬性 import flight

# obj = flight('test')

# print(obj.__module__)#  __module__ 表示當前操作的物件在那個模組

# print(obj.__class__)#  __class__ 表示當前操作的物件的類是什麼

#__init__ 構造方法,通過類建立物件時,自動觸發執行

#__del__析構方法,當物件在記憶體中被釋放時,自動觸發執行

class foo(object):

def __getitem__(self, key):

print('__getitem__', key)

def __setitem__(self, key, value):

print('__setitem__', key, value)

def __delitem__(self, key):

print('__delitem__', key)

obj = foo()

obj["name"] = "test"

# result = obj['k1'] # 自動觸發執行 __getitem__

# obj['k2'] = 'alex' # 自動觸發執行 __setitem__

# del obj['k1']

python類的成員 python 類的特殊成員

上文介紹了python的類成員以及成員修飾符,從而了解到類中有字段 方法和屬性三大類成員,並且成員名前如果有兩個下劃線,則表示該成員是私有成員,私有成員只能由類內部呼叫。無論人或事物往往都有不按套路出牌的情況,python的類成員也是如此,存在著一些具有特殊含義的成員,詳情如下 1.doc 表示類的...

python類成員 Python 類的特殊成員解析

類的成員有兩種形式 公有成員,在任何地方都能訪問 私有成員,只有在類的內部才能方法,私有成員命名時,前兩個字元是下劃線。class foo def init self,name,age self.name name self.age age def show self 間接方法私有字段 return...

Python 類的特殊成員方法

1.doc 描述類的資訊 class foo object 單引號和雙引號都可以 這裡描述類的資訊 def func self pass print foo.doc 這裡描述類的資訊2.call 物件後面加括號,觸發執行 call 方法的執行是由物件加括號觸發的,即 物件 或者 類 class fo...