1. 程式人生 > 其它 >語法第一天

語法第一天

在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的繼承通過在類名後的括號內宣告繼承的類實現,如果沒有要繼承的類,可以不帶括號。