Python3:在需要使用“self”的情况下,发出一个命令来设置self的属性?

2024-04-25 21:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这个问题的标题听起来很奇怪,但由于英语不是我的第一语言,我发现很难将其正式化。不过,我也许可以用更多的文字来解释。在

问题是,我试图创建一个名为“Foo”的类。在

# ../myProject/Foo.py

class Foo:
    '''Represents an example class for stackoverflow'''

现在所有Foo类的实例都有function属性,它只保存一个可以通过实例执行的函数。另外,还有一个parameters属性、元组或列表,其中包含调用function时应该使用的参数。在

^{pr2}$

这似乎工作得很好,但是问题是,我想给它一个默认值,以更改实例的属性。我基本上想做的是:

^{3}$

这样做会提高NameError: name 'self' is not defined。我应该如何实现它才能正常工作,还是应该想出一个变通办法?在


Tags: 实例pyan语言标题for属性foo
1条回答
网友
1楼 · 发布于 2024-04-25 21:26:40

self是用于描述实例的典型变量名。但是,在创建函数时(在类创建时),将计算默认参数。当然,self还不存在,因为类甚至不存在,但类仍在构建过程中。在

典型的方法是检查哨兵

def __init__(self, function=setattr, parameters=None):
    if parameters is None:
       parameters = (self, "togglableAttribute", not self.togglableAttribute)

请参阅我的答案here(以及下面的注释)来讨论可以用作哨兵的各种对象以及每个对象的优缺点。在

相关问题 更多 >

    热门问题