語法第一天
阿新 • • 發佈:2022-05-17
類
在python中,通過關鍵字class宣告類。類具有屬性和方法。
class stu:
def __init__(self, age, name):
self.age = age
self.name = name
def get_age(self):
return self.age
s = stu(18, '張三')
print(s.age, s.name)
類的方法
1、通過關鍵字def宣告方法,類中的方法必須有至少一個形參,表示物件本身的引用,一般使用self表示。
2、形參與實參
除去首個引數表示物件引用,其與python函式的使用基本一致。
3、私有方法
__private_method:兩個下劃線開頭,宣告該方法為私有方法,只能在類的內部呼叫 ,不能在類的外部呼叫
4、類的專有方法:
init : 建構函式,在生成物件時呼叫
del : 解構函式,釋放物件時使用
repr : 列印,轉換
setitem : 按照索引賦值
getitem: 按照索引獲取值
len: 獲得長度
cmp: 比較運算
call: 函式呼叫
add: 加運算
sub: 減運算
mul: 乘運算
truediv: 除運算
mod: 求餘運算
pow: 乘方
類的屬性
1、類屬性和物件屬性
類屬性:在類中,方法外建立,不同物件對其引用是同一個變數
物件屬性:在類中的方法中建立,不同物件對其引用是不同變數
2、私有屬性
__private_attrs:兩個下劃線開頭,宣告該屬性為私有,不能在類的外部被使用或直接訪問。
名稱空間/作用域
Python 的作用域一共有4種,分別是:
有四種作用域:
L(Local):最內層,包含區域性變數,比如一個函式/方法內部。
E(Enclosing):包含了非區域性(non-local)也非全域性(non-global)的變數。比如兩個巢狀函式,一個函式(或類) A 裡面又包含了一個函式 B ,那麼對於 B 中的名稱來說 A 中的作用域就為 nonlocal。
G(Global):當前指令碼的最外層,比如當前模組的全域性變數。
B(Built-in): 包含了內建的變數/關鍵字等,最後被搜尋。
規則順序: L –> E –> G –> B。
在區域性找不到,便會去區域性外的區域性找(例如閉包),再找不到就會去全域性找,再者去內建中找。
繼承
class a:pass
class b(a):pass
python的繼承通過在類名後的括號內宣告繼承的類實現,如果沒有要繼承的類,可以不帶括號。