x
作爲模塊級別的變量名稱和函數參數名稱是不好的做法嗎?具有相同名稱的模塊級別變量和函數參數:不良做法?
x = 2
def f(x):
print x
f(x)
我問這個,因爲pylint的抱怨是:
W: 3, 6: Redefining name 'x' from outer scope (line 1) (redefined-outer-name)
x
作爲模塊級別的變量名稱和函數參數名稱是不好的做法嗎?具有相同名稱的模塊級別變量和函數參數:不良做法?
x = 2
def f(x):
print x
f(x)
我問這個,因爲pylint的抱怨是:
W: 3, 6: Redefining name 'x' from outer scope (line 1) (redefined-outer-name)
不,這不是,這就是爲什麼你會看到一個警告(W),而不是一個錯誤(E)。
一般情況下,這取決於您的使用情況。例如,如果您有一個替代變量名稱,它可以類似地傳達與當前變量名稱相同的含義,最好使用它來避免不必要的混淆。爲了在你的代碼示例,可以非常方便的使用方法:
def f(n):
print n
的不必要的混亂可能是因爲你確實想使用全局變量x,或者你可能最終從不同的範圍比較x的值和結束調試爲什麼它們的值不一樣。
但是,如果在另一個作用域中使用先前定義的變量名稱是傳達變量應該傳達的信息的最佳方式,那麼就使用它。
如果您決定*「隨它」*,請明確說明,請添加註釋'#pylint:disable = redefined-outer-name' – jonrsharpe 2014-11-08 08:51:40
是的,它只會讓人困惑。 – 2014-11-08 03:42:41