傳遞任意數量的實參 形參前加一個 * ,Python會創建一個已形參為名的空元組,將所有收到的值都放到這個元組中: 不管函數收到多少實參,這種語法都管用。 1. 結合使用位置實參和任意數量實參 運行結果: 2. 使用任意數量的關鍵字實參 形參**user_info中的兩個星號讓python創建了一個 ...
傳遞任意數量的實參
形參前加一個 * ,Python會創建一個已形參為名的空元組,將所有收到的值都放到這個元組中:
def make_pizza(*toppings): print("\nMaking a pizza with the following toppings: ") for topping in toppings: print("- " + topping) make_pizza('pepperoni') make_pizza('mushroom', 'green peppers', 'extra cheese')
不管函數收到多少實參,這種語法都管用。
1. 結合使用位置實參和任意數量實參
def make_pizza(size, *toppings): print("\nMaking a " + str(size) + "-inch pizza with the following toppings: ") for topping in toppings: print("- " + topping) make_pizza(16, 'pepperoni') make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
運行結果:
Making a 16-inch pizza with the following toppings: - pepperoni Making a 12-inch pizza with the following toppings: - mushroom - green peppers - extra cheese
2. 使用任意數量的關鍵字實參
def build_profile(first, last, **user_info): profile = dict() profile['first_name'] = first profile['last_name'] = last for key, value in user_info.items(): profile[key] = value return profile user_profile = build_profile('albert', 'einstein', location='princeton', field='physic') print(user_profile)
形參**user_info中的兩個星號讓python創建了一個名為user_info的空字典。
將函數存儲在模塊中
將函數存儲在稱為模塊的獨立文件中,使用時再將模塊導入到主程式中。目的:1. 隱藏程式代碼細節;2.重用函數;3.與其他程式員共用這些文件;4.使用其他程式員編寫的函數庫。
1. 導入整個模塊
pizza.py
def make_pizza(size, *toppings): print("\nMaking a " + str(size) + "-inch pizza with the following toppings: ") for topping in toppings: print("- " + topping)
making_pizzas.py
import pizza pizza.make_pizza(16, 'pepperoni') pizza.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
即可以使用一下的語法來導入模塊並使用模塊中的任意函數:
import module_name module_name.function_name( )
2. 導入特定的函數
from module_name import function_name # 導入模塊中一個函數 from module_name import function_0, function_1,,, # 導入模塊中的多個函數
eg:
making_pizzas.py
from pizza import make_pizza make_pizza(16, 'pepperoni') make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
導入的是函數,調用函數時就無需使用句點。
3. 使用as給函數指定別名
from pizza import make_pizza as mp mp(16, 'pepperoni') mp(12, 'mushroom', 'green peppers', 'extra cheese')
給函數指定別名的通用語法:
from modul_name import function_name as fn
4. 使用as給模塊指定別名
import pizza as p p.make_pizza(16, 'pepperoni') p.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
給模塊指定別名的通用語法:
import module_name as mn
5. 導入模塊中的所有函數
from pizza import * make_pizza(16, 'pepperoni') make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
導入所有函數的通用語法:
from module_name import *
函數編寫指南
1. 函數命名和模塊命名:指定描述性名稱,且在只其中使用小寫字母和下劃線。
2. 函數定義後應緊跟註釋,用以簡要闡述改函數的功能,採用文檔字元串格式。
3. 給形參指定預設值和函數調用中的關鍵字實參,等號兩邊不用空格。
4.所有程式或者模塊包含多個函數時,使用兩個空行將相鄰的兩個函數分開。
5. 所有import語句放在文件開頭,唯一例外就是文件開頭使用了註釋來描述整個程式。