【发布时间】:2020-04-29 03:38:04
【问题描述】:
我想定义一个类的属性,然后用它作为同一个类中方法的参数,方法如下
class Class1:
def __init__(self,attr):
self.attr=attr
def method1(self,x=self.attr):
return 2*x
返回错误:NameError: name 'self' is not defined
我怎样才能以这样一种方式定义方法,即每当我不明确写 x 时,它只使用属性 attr ?
在示例中,我的意思是我想拥有
cl=Class1()
print cl.method1(12) # returns '24'
cl.attr= -2
print cl.method1() # returns '-4'
【问题讨论】:
-
你不能只设置一个默认值,如果参数等于默认值然后分配
self.attr的结果? -
您必须在 method1 中定义
attr才能使用它,您可以删除x=self.attr作为将 x 定义为其地址位置的 arg。
标签: python class methods attributes