python 自定義內建方法

2021-10-08 00:00:48 字數 2674 閱讀 5838

定義乙個新型別的元組,對於傳入的可迭代物件,我們只保留int型別且值大於0的元素。

python中有內建的元組型別,tuple型別。自己也可以自定義乙個方法型別,

class

inttuple

(tuple):

# # 重寫父類的構造方法

# def __init__(self,iterable):

# # iterable裡面的元素 為整數且》0的值

# for i in iterable:

# if isinstance(i,int) and i >0: # 遍歷物件

# super().__init__()

# # print(self)

# '''

# 說明 元組物件 在__init__構造方法之前 就已經建立完成了,所以沒有實現

# '''

# int_tuple = inttuple([-2,2,"hh",["x","y","z"],4])

# # print(int_tuple) # (-2, 2, 'hh', ['x', 'y', 'z'], 4)

#

建立的方法並沒有實現,主要原因的_init__方法。

# class demo(object):

# def __new__(cls, *args, **kwargs):

# print("__new__") # 建立物件

# # return super().__new__(cls) # 返回出物件 __new__ __init__

# return object.__new__(cls) # 返回出物件 __new__ __init__

## def __init__(self):

# print("__init__")

# '''

# 加上return 後 就會將兩個物件一起列印,若沒有就只列印new

# '''

# # d = demo() # __new__

# d = demo.__new__(demo) # 建立物件

# demo.__init__(d) # __new__ __init__ 初始化

如上述**所示,在__new__方法來建立物件的時候,返回的的是new,init方法並沒有列印出來,需要return才能列印出來,是方法重現。

__new__方法是建立物件的方法

此處重寫了父類的方法

需呼叫父類的__new__方法來建立物件

需將物件返回回來給__init__方法,沒有__new__方法,則會呼叫基類方法。

__init__方法為初始化方法

注意:當建立完物件時,自動呼叫它。

# li = list.__new__(list,"abc")

# # print(li) #

# list.__init__(li,"abc")

# print(li) # ['a', 'b', 'c']

# tu = tuple.__new__(tuple,"123")

# print(tu) # ('1', '2', '3')

# tuple.__init__(tu,"123")

# print(tu) # ('1', '2', '3')

元組和列表在建立時的區別。

class

inttuple

(tuple):

def__new__

(cls, iterable)

: f =

[i for i in iterable if

isinstance

(i,int

)and i >0]

return

super()

.__new__(cls,f)

int_tuple = inttuple([2

,-3,

"hh",[

"a",

"b"],4

])print

(int_tuple)

# (2, 4)

當使用new方法來重寫自定義方法時,就可以實現該方法。

列表推導式:

li =

for i in

range(10

):print

(i)if i%2==

0:# print(li)

# print([i for i in range(10)])

# print([i for i in range(10) if i%2 ==0])

# 巢狀

print([

(i,j)

for i in

range(10

)for j in

range(10

)])for i in

range(10

):for j in

range(10

):print

(i,j)

python自定義函式和內建函式

def functionname parameters 函式 文件字串 function suite return expression 2.2分類 位置引數 def fun1 a,b print a,b fun1 1,2 關鍵字引數 def fun1 a,b print a,b fun1 b 1,...

Python自定義類呼叫方法

自定義類呼叫方法 檔案名字小寫,類名字大寫,從檔名匯入類名就行,保證檔案名字和要呼叫的檔案在乙個資料夾。類儲存在類檔案裡面,在新檔案裡面呼叫類 比如from alien import alien 就是從檔案alien.py裡面匯入alien類 比如如下 from test import soluti...

python呼叫自定義模組方法

python模組是乙個python檔案,以.py結尾,包括了python物件定義和python語句,能讓python 段更有邏輯性 更好用 更易懂,既然python模組有這麼多好處,那麼該如何引用python模組呢?import語句 自定義模組可以採用import語句來進行引入,其操作步驟是先導入模...