![](/img/trans.png)
[英]Python Redefine the variable given as a parameter to the function
[英]python function redefine
我想做這樣的事情:
f = lambda x: None
x = [f]
def f(n):
return n
print x[0](2)
預期結果為2
,但實際上為None
。
我知道可以用類來解決,但是沒有它們也可以解決嗎?
在這里,您將創建一個匿名函數並將其添加到列表中。 現在有兩個引用指向lambda。 盡管您定義了另一個具有相同名稱f的函數,但這不會影響列表中的引用,因為它指向了lambda。
您想在這里實現什么?
您將在列表中存儲對該函數的引用x而不是其名稱。
你可以做類似的事情
f = lambda x: None
x = ['f']
def f(n):
return n
print globals()[x[0]](2)
但這有點“不好”。 也許您可以解釋為什么要嘗試這樣做,我們可以為您找到更好的方法。
您可以將f設置為全局變量:
全局f
f =λx:x + 1
設
x(1)
出:2
f =λx:x + 2
設
x(1)
出:3
嗯,這很容易(:。函數和其他對象一樣都是對象。
x = [f]
要么
x[0] = f
重新定義f之后?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.