python 內建方法

2022-04-16 19:04:01 字數 3586 閱讀 8520

內建方法

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...