定義乙個新型別的元組,對於傳入的可迭代物件,我們只保留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語句來進行引入,其操作步驟是先導入模...