※ [本文转录自 Python 看板 #1HYATNk9 ]
作者: tiefblau (tiefblau) 看板: Python
标题: [翻译] Google 建议的 Python 风格指南 12
时间: Tue May 7 15:03:49 2013
原文网址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
* Default Argument Values
用于大部分情况
释义:
可以预先指定在在函数参数列尾端的变量数值。
def foo(a, b=0):
当仅用一个引数呼叫foo时,b会被设为0;
当使用两个引数呼叫foo时,b会为第二个引数。
优点:
我们经常使用含有许多默认值的函式,但只在极少情况下会需要覆蓋它,
Default Argument Values提供一个简便的方式达到此目的,而不需要为了少见的例外定义
额外的函式。另外,Python并没有支援重载methods/function,默认参数值是一个"假装"
为重载行为的好方法。
缺点:
导入模组时,Default Argument Values仅会被定义一次,当参数是可变动的变量型态
如:list、dictionary时,如果该函式变动了该变量 (e.g. apped()到list),会改动到预
设的物件,造成问题。
决策:
注意以下警告使用。
1.定义函式时,不要用可变动的物件为默认参数值(Default Argument Values)。
正确:
def foo(a, b=None):
if b is None:
b = []
错误:
def foo(a, b=[]):
...
2.永远使用明确名字呼叫有默认值的参数,会帮助document the code,
当有更多参数加入时,也可帮助避免与侦测interface breakage。
//不太会翻这两句...
def foo (a,b=1):
...
正确
foo(1)
foo(1, b=2)
错误:
foo(1,2)
===
觉得很不错的指南,我也来献丑翻译一下,有哪边不对或是不通顺之处欢迎提出并请多多
包涵啦。