python常用的內建函式

2021-09-01 02:55:15 字數 2713 閱讀 1698

可自定義重寫該方法,這也是python多型的體現 示例:

class person:

def __init__(self, name):

self.name = name

def __str__(self):

return '姓名:{}'.format(self.name)

def __del__(self):

print('物件即將銷毀')

# 當獲取不存在的屬性時,會自動觸發該方法

def __getattr__(self, item):

if item == 'age':

return 18

else:

return '你猜'

# 當設定不存在的屬性時,會自動觸發該方法

def __setattr__(self, key, value):

print(key, value)

self.__dict__[key] = value

# 銷毀物件成員屬性時,會自動觸發該方法

def __delattr__(self, item):

print(item, '即將銷毀')

xiaoming = person('小明')

xiaoming.age = 20

print(xiaoming.age)

# 存放物件的所有屬性

# print(xiaoming.__dict__)

# print(xiaoming)

del xiaoming.age

將物件當做字典操作,特定時機會自動觸發的方法

class person:

# 將物件當做字典操作,設定鍵值對時會觸發該方法

def __setitem__(self, key, value):

# print(key, value)

self.__dict__[key] = value

# 將物件當做字典操作,根據鍵獲取值時會觸發該方法

def __getitem__(self, item):

# print(item)

return self.__dict__.get(item)

# 將物件當做字典操作,刪除指定的鍵值對時自動觸發

def __delitem__(self, key):

del self.__dict__[key]

xiaoming = person()

xiaoming['name'] = '小明'

print(xiaoming.dict)

print(xiaoming['name'])

del xiaoming['name']

將物件當做函式呼叫時,會自動觸發下面方法

class person:

# 將物件當做函式呼叫時,會自動觸發該方法

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

# print('__call__')

return sum(args)

xiaoming = person()

# 這樣操作,需要提供call方法

ret = xiaoming(1, 2, 3, name='小明')

print(ret)

內建算術運算子:

'''

加法:__add__、__radd__、__iadd__

減法:__sub__、__rsub__、__isub__

乘法:__mul__、__rmul__、__imul__

除法:__truediv__、__rtruediv__、__itruediv__

求餘:__mod、__rmod__、__imod__

'''

內建關係運算子

'''

>: __gt__

=: __ge__

<: __lt__

<=: __le__

==: __eq__

!=: __ne__

'''

總結: __init____del____str__attr系列、item系列、__call__ , __str____repr__

這兩個方法都只能返回字串 :

使用print/str方法時會自動觸發__str__方法,當__str__不存在,嘗試__repr__

使用repr方法時會自動觸發__repr__方法 , repr方法通常用於返回物件的字串表示形式

eval方法可以將乙個字串當做有效的**執行

python 常用的內建函式

filter function,sequence 對sequence 中的item 依次執行 function item 將執行結果為 true 的item 組成乙個 list string tuple 取決於 sequence 的型別 deff x returnx 2 0 printfilter ...

Python 常用的內建函式

build in function,啟動python直譯器,輸入dir builtins 可以看到很多python直譯器啟動後預設載入的屬性和函式,這些函式稱之為內建函式,這些函式因為在程式設計時使用較多,cpython直譯器用c語言實現了這些函式,啟動直譯器 時預設載入。rangerange st...

python 常用的內建函式

callable obj 檢視乙個obj是不是可以像函式一樣呼叫 repr obj 得到obj的表示字串,可以利用這個字串eval重建該物件的乙個拷貝 eval r str 表示合法的python表示式,返回這個表示式 dir obj 檢視obj的name space中可見的name hasattr...