python易混淆點二 函式 引數 屬性

2021-07-10 15:35:23 字數 2439 閱讀 4519

在python中,定義乙個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。

1.函式:

定義函式時,需要確定函式名和

引數個數;函式體內部可以用return隨時返回函式結果;函式執行完畢也沒有return語句時,自動return none

def

my_abs

(x):

if x >= 0:

return x

my_abs 函式   x引數

****2.引數:python中函式的

引數有4種形式******

1、位置或關鍵字引數

2、僅位置的引數

3、任意數量的位置引數      *a

4、任意數量的關鍵字引數    **a

1)

power(x, n)函式有兩個引數:xn,這兩個引數都是

位置引數

必選引數在前,預設引數在後

當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數。

預設引數必須指向不變物件!

def

calc

(*numbers):定義

可變引數

和定義乙個list或tuple引數相比,僅僅在引數前面加了乙個

*

def

person

(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)

2)關鍵字引數kw  :在呼叫該函式時,可以只傳入必選引數;和可變引數類似,也可以先組裝出乙個dict,然後,把該dict轉換為關鍵字引數傳進去

>>> extra = 

>>> person('jack', 24, **extra)

name: jack age: 24 other:

3)限制關鍵字引數的名字,就可以用命名關鍵字引數,命名關鍵字引數需要乙個特殊分隔符

**後面的引數被視為命名關鍵字引數

def

person

(name, age, *, city, job):

print(name, age, city, job)

>>> person('jack', 24, city='beijing', job='engineer')

jack 24 beijing engineer

總結

引數定義的順序必須是:必選引數、預設引數、可變引數/命名關鍵字引數和關鍵字引數。

*args是可變引數,args接收的是乙個tuple;

**kw是關鍵字引數,kw接收的是乙個dict。

屬性

例項屬性

:給例項繫結屬性的方法是通過例項變數,或者通過self變數:

類屬性:如果student類本身需要繫結乙個屬性呢?可以直接在class中定義屬性,這種屬性是類屬性,歸student類所有,當我們定義了乙個類屬性後,這個屬性雖然歸類所有,但類的所有例項都可以訪問到

>>> 

class

student

(object):

... name = 'student'

...>>> s = student() # 建立例項s

>>> print(s.name) # 列印name屬性,因為例項並沒有name屬性,所以會繼續查詢class的name屬性

student

>>> print(student.name) # 列印類的name屬性

student

>>> s.name = 'michael'

# 給例項繫結name屬性

參考:

C 易混淆點(二)

二進位制的100 的第0位是 0 1 第二位 0 第一位 0 第0位 所以把乙個數的第三位進行清零 置位 取反的操作如下 include define bit3 0x01 3 對乙個數的第三位進行清零 置位 取反 int main 程式的儲存區域分為 段 唯讀資料段 已初始化的讀寫資料段 未初始化的...

Python之易混淆點一

前言 is,都是用來比較兩個物件是否相等的運算子,可是它們依據什麼來判斷是true 還是 false呢?一 a 1 2,3 b 1 2,3 4 print id a id b 5005896 5005960 print a b false c a.copy 1,2,3 1,2,3 print a,c...

mysql易混淆點

1 alter table 表名 change name names char 40 after 欄位名 改變位置放到字段之後 before 放到字段之前 2 查詢要攜帶索引字段,通常放在select之後第乙個 3 檢視檢視命令 show table status where comment vie...