Python 類與物件

2021-08-17 05:08:17 字數 2000 閱讀 2233

引數/預設值/可變引數/關鍵字引數/命名關鍵字引數

返回值

``python

class

student

():def

__init__

(self, *arg, **kwargd):

# 可變引數 *arg ,**kwargd

if'name'

in kwargd:

self._name = kwargd['name']

defmain

(): s = student()

if __name__ == '__main__':

main()

#### 巢狀定義

#### 高階函式: 把函式當成函式的引數 - λ函式(匿名函式)/閉包/偏函式/柯里化

```python

class="se-preview-section-delimiter">div>

```python

# func 是乙個函式,使得下面這個函式可以做各種運算,累加,累乘等。

def cal(num_list, func):

total = num_list[0]

for index in range(1, len(num_list)):

total func(total, num_list[index])

return total

def main():

my_list = [1, 2, 3, 4, 5]

print(calc(my_list.lambda x, y: x + y)) # 匿名函式,此處做了加法運算

# func 是乙個函式,使得下面這個函式可以做各種運算,累加,累乘等。

defcal

(num_list, func):

total = num_list[0]

for index in range(1, len(num_list)):

total func(total, num_list[index])

return total

defmain

():my_list = [1, 2, 3, 4, 5]

print(calc(my_list.lambda x, y: x + y)) # 匿名函式,此處做了加法運算

小結:函式:是程式中的重要組成部分,用函式寫,呼叫函式,都特別的方便,不用一行行的執行**,繁瑣而冗雜。

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。

函式能提高應用的模組性,和**的重複利用率。python提供了許多內建函式,比如print()。也可以自己建立函式,這被叫做使用者自定義函式。

用def開頭,自定義函式,避免重複**這種壞味道出現在你的程式裡legb –> 區域性 - 巢狀 - 全域性 - 內建,若都沒找到就會報錯 not defined

global nonlocal

根據呼叫地方的不同,globals() 和 locals() 函式可被用來返回全域性和區域性命名空間裡的名字。

如果在函式內部呼叫 locals(),返回的是所有能在該函式裡訪問的命名。

如果在函式內部呼叫 globals(),返回的是所有在該函式裡能訪問的全域性名字。一切皆為物件

類與類之間的關係:

is-a 繼承

has-a 關聯

use-a 依賴

封裝:隱藏可以隱藏的,只向外界提供引數

多型:同乙個方法幹了不同的事情

高內聚:單一職責原則

低耦合:迪公尺特法則(最小知識原則)

裡式替換原則:用子類替換父類

開閉原則:接收擴充套件,拒絕修改

合成聚合復用原則:能用關聯不用繼承

小結:類:在類地內部,使用 def 關鍵字來定義乙個方法,與一般函式定義不同,類方法必須包含引數 self,且為第乙個引數,self 代表的是類的例項。

init: 建構函式,在生成物件時呼叫

Python 類與物件

python是一種物件導向的程式語言。python中,幾乎所有東西都是乙個物件。物件有屬性和方法。類是用於建立物件的 藍圖 要建立類,請使用關鍵字class 示例 建立乙個名為myclass的類,其屬性名為x class myclass x 8現在可以使用myclass類建立物件 示例 建立乙個名為...

Python 類與物件

一.一 類 是對一群有相同特徵或者行為的事物的統稱,是抽象的,不可直接使用。二 物件 是由類創造出來的實體,可以直接使用。三 類與物件之間的關係 1.先有類再有物件 2.類只有乙個而物件可以有多個 四 類的設計 3要素 類名 大駝峰命名法 屬性 描述這類事物的特徵 方法 描述這類事物的具體行為 二....

Python 類與物件

物件導向程式設計三要素 封裝 繼承 多型。類與物件萬事萬物都可以用類描述。class cat 大駝峰命名 初始化物件 方便快速定義新物件屬性的功能 def init self,new name,new age self.name new name self.age new age def str s...