內建方法
0.format
format_dic= ----','古風': '/--\/--\',
'2b': '++++++++'}
class a:
def __init__(self,name,age,where):
self.name =name
self.age = age
self.where = where
def __format__(self,format_spec):
if not format_spec or format_spec not in format_dic:
return format_dic['自由'].format(obj=self)
else:
return format_dic[format_spec].format(obj=self)
a = a('alex',23,'沙河')
print(a.__format__('古風'))
print(format(a,'2b'))
format 只有當類中投這個內建方法才能使用,並且使用的過程中需要傳入format_spec的引數,
具體做用鬼知道!!!!!!!!!!!!!!!
1.__str__
__str__,在類中設定的方法,在遇到對該類的物件直接print的情況下後直接尋找類中的__str__,並且尋找__str__的返回值,如果沒有則會返回object中的__str__返回值,空間位址
class a:
def __init__(self,name):
self.name = name
# def __str__(self):
# return '23333'
a = a('alex')
print(a)#<__main__.a object at 0x0000000000dbad68> object中的__str__返回值
一般的使用範圍是在設定乙個大類的時候,自定義乙個方法的返回值
2.__repr__
__repe__於__str__類似,同樣是自定義返回值,並且是他的備胎!1.在調取__str__的時候優先在方法中尋找__str__數值,找不到則會尋找__repr__
2.調取__repr__的時候,相當於執行obj.__repr__,尋找__repr__找不到則尋找object中的__repr__方法
class int:
# def __str__(self):
# return '2'
def __repr__(self):
return str(1)
a = int()
b = int()
print(repr(a))
print(str(a))
print(repr(b))
3.__call__
__call__是物件名能夠如同函式一樣被呼叫,class a:
def __init__(self):pass
def __call__(self):
print('233')
a = a()
a()
4.__new__
__new__ 構造方法:在例項化之前自定義乙個例項化的途徑class a:
__nock = none
def __new__(cls, *args, **kwargs):
if cls.__nock is none:
obj = object.__new__(cls)
cls.__nock = obj
return cls.__nock
def __init__(self,name):
self.name = name
a = a('alex')
b = a('engo')
print(a)
print(b)
#單例模式,使用的是同乙個記憶體空間,最終調取的屬性是最後乙個物件的屬性
print(a.name)#結果engo
print(b.name)#結果engo
5.__eq__
__eq__方法:對判斷的結果自定義,可以定義比較的方式class a:
pass
# def __eq__(self, other):
# return true
object
a = a()
b = a()
print(a == b) #應為是物件,所以是物件位址與物件位址的不交,不是類的比較
print(a())
func = 2
func2 = 2
print(func == func2)
is 比較的位址
== 比較的是數值
在類中 == 比較的是位址
6.__del__
__del__方法:兜底方法,python自動清除之前會執行一次__del__方法應用範圍,需要用到作業系統的地方,空間刪除後用過的作業系統的部分方法沒有關閉的情況下用__del__方法關閉。
class a:
def __init__(self):
self.f = open('wen','w')
def __del__(self):
self.f.close()
print('233333')
a = a()
7.item
1.getitem
2.setitem
3.delitem
8.item 三種方法:getitem 查詢
將物件的屬性讀取方式改變
setitem 修改增加
將物件的屬性修改和增加
delitem 刪除
將物件的屬性刪除
class a:
def __init__(self,name):
self.name = name
def __getitem__(self,key): #轉換一種讀取方式
return self.__dict__[key]
def __setitem__(self, key, value): #對屬性進行修改和增加
self.__dict__[key] = value
def __delitem__(self, key): #刪除屬性
del self.__dict__[key]
a = a('alex')
print(a['name'])
a['name'] = 'nihao'
print(a['name'])
del a['name']
print(a['name'])
python 內建 Python內建方法大全
新增元素 集合.add 集合.update 一次新增多個值 集合隨機刪除 集合.pop 集合刪除指定元素 集合.remove 沒有找到會奔潰 集合.discard 沒有找到不會奔潰 移除空白 strip 取字串兩邊空格 lstrip 取字串左邊空格 rstrip 取字串右邊空格 括號中可以新增引數指...
python內建 python內建方法總結
注意 內建函式id 可以返回乙個物件的身份,返回值為整數。這個整數通常對應與該物件在記憶體中的位置,但這與python的具體實現有關,不應該作為對身份的定義,即不夠精準,最精準的還是以記憶體位址為準。is運算子用於比較兩個物件的身份,等號比較兩個物件的值,內建函式type 則返回乙個物件的型別 以下...
python內建方法
內建方法 說明 init self,初始化物件,在建立新物件時呼叫 del self 釋放物件,在物件被刪除之前呼叫 new cls,args,kwd 例項的生成操作 str self 在使用print語句時被呼叫 getitem self,key 獲取序列的索引key對應的值,等價於seq key...