Python學習基礎1

2021-09-18 06:13:18 字數 1074 閱讀 5792

def func(*args, **kw):

print('args =', args, 'kw =', kw)

輸出: args = () kw = {} 

引數*args  表示元組   **kw表示字典

構造方法包括建立物件和初始化物件,在python當中,分為兩步執行:

先執行__new__方法,然後執行__init__方法;

__init__是當例項物件建立完成後被呼叫的,然後設定物件屬性的一些初始值。

__new__是在例項建立之前被呼叫的,因為它的任務就是建立例項然後返回該例項,是個靜態方法。

也就是,__new__在__init__之前被呼叫,__new__的返回值(例項)將傳遞給__init__方法的第乙個引數,然後__init__給這個例項設定一些引數。

class  a:

def __init__(self):

self.x = 66

print('in init function')

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

print('in new function')

return object.__new__(a, *args, **kwargs)

a=a()

輸出:  in new function

in init   function

總結__new__至少要有乙個引數cls,代表要例項化的類,此引數在例項化時由python直譯器自動提供

__new__必須要有返回值,返回例項化出來的例項,這點在自己實現__new__時要特別注意,可以return父類__new__出來的例項,或者直接是object的__new__出來的例項

__init__有乙個引數self,就是這個__new__返回的例項,__init__在__new__的基礎上可以完成一些其它初始化的動作,__init__不需要返回值

我們可以將模擬作製造商,__new__方法就是前期的原材料購買環節,__init__方法就是在有原材料的基礎上,加工,初始化商品環節

原文: 

python基礎學習1

1.字串 a 123abc 2.索引 下標 從0開始 a 0 第一位 a 0 3 a 3 前3位 0 索引 3 a 5 0 後5位 a 2 4 第3位 第4位 3.步進 a 是全部字元 a 2 取全部每隔兩個取數 a 1 5 2 第二個到第5個,每隔兩個取值 a 1 2 第二個到結束 每隔兩個取值 ...

python 基礎學習1

anaconda環境變數設定 c programdata anaconda3 c programdata anaconda3 library mingw w64 bin c programdata anaconda3 library usr bin c programdata anaconda3 l...

Python基礎學習 1

a 1,2,3 a 1,2,3,4 2.clear清空列表 a 1,2,3 a.clear a 3.copy複製列表 a 1,2,3 b a.copy 直接b a只是將b指向a,並未生成新list b 1 a 1,2,3 b 1,4,3 4.count統計物件出現次數 a 1,2,3,2 a.cou...