我创建了一个类,希望将self.variable传递给方法中的可选参数。原因是因为我想将信息存储在用另一种方法制成的Self.variable中,但是,如果我使用该方法,我想必须选择使用自己的手动信息覆盖self.variable。
遗憾的是,这是不允许的,因此我想知道为什么不这样做!? 另外,我想知道是否有人知道用Python方式实现相同目标的方法?
这是我尝试过的一个例子:
# example:
class Example(Object)
def __init__(self):
self.variable = []
def fill_variable(self):
self.variable = [random.randint(1,10)] * 10
def use_variable(self, random_numbers = self.variable)
print(random)
test.Example()
test.fill_variable()
test.use_variable()
# or
test.use_variable(random_numbers=[1,2,3,4,5,6,7,8,9,10])
我期望test.use_variable()
将打印10
个随机数
而那个test.use_variable(random_numbers=[1,2,3,4,5,6,7,8,9,10])
print(1,2,3,4,5,6,7,8,9,10)
感谢您的帮助和帮助!
答案 0 :(得分:1)
不幸的是,这是不可能的,相反,您可以使用if
语句检查它是否是相同的值(None
),如果是,则将其分配给self.variable
:
def use_variable(self, random_numbers = None):
if random_numbers == None:
random_numbers = self.variable
print(random_numbers)
答案 1 :(得分:1)
包含方法的def
行的类级别的代码行在导入时执行一次。目前,该类的实例可能为self
,并且该类尚未完成。
另一点是,参数名称self
仅在该方法内部 存在。