考慮以下僞代碼:重新評估VAR在python
class Atrribute(object):
def __init__(self):
self.value = 0
def get():
self.value = random(10)
def func(var):
lambda var: return var+1
1) myFunc = func(Attribute().get())
2) myFunc()
3) myFunc()
現在,當我在第2行調用myFunc的()我從0到10(加1)隨機值是由Attribute中的get()函數生成。問題是,當我在第3行調用myFunc()時,我從第2行得到相同的隨機值。是否有可以讓Python在第3行再次啓動get()函數以產生新的隨機值?
梅厄
該代碼甚至不_close_工作。請重寫爲_working example_。班級名稱拼寫錯誤。除非將其設置爲'staticmethod',否則不能創建'get',除非手動將其傳遞給類的實例,否則無法在該類上調用實例方法。 'func'不返回可調用的,所以'myFunc()'不起作用。 'get'返回'None',這就是你傳遞給'func'的東西 - 你不能添加到'None'。 – agf
get()方法沒有返回任何東西,也沒有被自我傳遞。這是你的實際代碼嗎? –
另外隨機是未定義的(並且不會像明顯的'random.random'那樣操作),您不能在lambda內返回,並且屬性拼寫錯誤。將單詞「code」更改爲「pseudo-code!」 – dbr