考虑以下伪代码:重新评估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