Python 內建特殊方法

2021-09-28 15:54:35 字數 4086 閱讀 7774

1.資訊格式化操作:__str__方法和__repr__方法
'''

__str__方法

'''class

dog:

def __init__

(self,n,h)

: self.name=n

self.height=h

def __str__

(self)

:return

"狗的名字:%s\n狗的體長:%s"

%(self.name,self.height)

dog1=

dog(

"小黃",50

)print

(dog1)

''' __repr__方法

'''import datetime

t=datetime.datetime.

now(

)print

(t) # 呼叫__str__方法,面向的是使用者t=

repr

(t)print(t

) # 面向的是開發人員

print

(eval(t

))

2.呼叫操作:__call__方法
'''

__call__方法:作用是使得物件具備當做函式來呼叫的能力

'''class

penfactory

: def __init__

(self,p_type)

: self.p_type=p_type

def __call__

(self,p_color)

:print

("建立的畫筆型別:%s,它的顏色是:%s"

%(self.p_type,p_color)

)gangbif=

penfactory

("鋼筆"

)gangbif

("red"

)gangbif

("blue"

)gangbif

("green"

)print

("-"*15

)qianbif=

penfactory

("鉛筆"

)qianbif

("black"

)qianbif

("yellow"

)qianbif

("brown"

)

3.索引操作:新增:__setitem__方法   獲取:__getitem__方法        

刪除:__delitem__方法

4.切片操作:統一由「索引操作」進行管理

#--

----

----

----

----

----切片操作--

----

----

----

----

----

-class

person

: def __init__

(self)

: self.items=[1

,2,3

,4,5

,6,7

,8]

def __setitem__

(self, key, value)

: self.items[key]

=value

def __getitem__

(self, item)

:print

("getitem"

,item)

def __delitem__

(self, key)

:print

("delitem"

,key)

p=person()

p[0:4

:2]=

["a"

,"b"

] # start=

0,end=

4,step=

2,value=[1

,2]print

(p.items)

5.比較操作:
'''

比較操作

'''class

person

: def __init__

(self,age,height)

: self.age=age

self.height=height

def __eq__

(self, other)

:return self.age==other.age

def __ne__

(self, other)

:print

("比較不相等操作"

) def __gt__

(self, other)

:print

("大於操作"

) def __ge__

(self, other)

:print

("大於等於"

) def __lt__

(self, other)

:print

("小於"

) def __le__

(self, other)

:print

("小於等於"

)p1=

person(18

,180

)p2=

person(17

,190

)print

(p1==p2) #呼叫__eq__方法,比較兩人的年齡是否相等

print

(p1>p2) #呼叫__gt__方法

print

(p1>=p2) #呼叫__ge__方法

print

(p1!=p2) #呼叫__ne__方法

6.遍歷操作:讓自己建立的物件可以使用

for in遍歷:__getitem__方法,__iter__方法

next函式進行訪問

'''

__getitem__方法

'''class

person

: def __init__

(self)

: self.result=

1 def __getitem__

(self, item)

: self.result+=

1if self.result>=6:

raise stopiteration

("停止遍歷"

)return self.result

p=person()

for i in p:

print

(i)'''

__iter__方法

'''class

person

: def __init__

(self)

: self.result=

1 def __iter__

(self)

:print

("iter"

) # return

iter([

1,2,

3,4,

5])return self #例項本身就是迭代物件,故返回自己

def __next__

(self)

: self.result +=

1if self.result>=6:

raise stopiteration

("停止遍歷"

)return self.result

p=person()

for i in p:

print

(i)

python 內建 Python內建方法大全

新增元素 集合.add 集合.update 一次新增多個值 集合隨機刪除 集合.pop 集合刪除指定元素 集合.remove 沒有找到會奔潰 集合.discard 沒有找到不會奔潰 移除空白 strip 取字串兩邊空格 lstrip 取字串左邊空格 rstrip 取字串右邊空格 括號中可以新增引數指...

python內建 python內建方法總結

注意 內建函式id 可以返回乙個物件的身份,返回值為整數。這個整數通常對應與該物件在記憶體中的位置,但這與python的具體實現有關,不應該作為對身份的定義,即不夠精準,最精準的還是以記憶體位址為準。is運算子用於比較兩個物件的身份,等號比較兩個物件的值,內建函式type 則返回乙個物件的型別 以下...

python 內建函式和特殊函式

2 特殊函式 輸入輸出 記憶體相關 檔案操作相關 模組相關 幫助 呼叫相關 檢視內建屬性 字串型別 的執行 exec 動態執行 沒有返回值 complie 將乙個字串編譯成位元組 例子 in 8 eval 3 5 2 8 10 21 out 8 35.0 in 9 exec print 這是exec...