Python:为什么不能使用 self.variable 作为方法中的可选参数?

Dan*_*uco 5 python class self

我创建了一个类,我想将 self.variable 传递到方法中的可选参数中。原因是因为我想将信息存储在其他方法中创建的 Self.variable 中,但是,如果我使用该方法,我希望必须选择使用我自己的手动信息覆盖 self.variable。

可悲的是,这是不允许的,因此我想知道为什么不可以!?另外,我想知道是否有人知道实现相同目标的 Pythonic 方法?

这是我尝试过的示例:

# 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])

Run Code Online (Sandbox Code Playgroud)

我的期望是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)

感谢您的帮助和解释!

U10*_*ard 5

不幸的是,这是不可能的,您可以使用if语句检查它是否具有相同的值(None)如果是,则将其分配给self.variable

def use_variable(self, random_numbers = None):
    if random_numbers == None:
        random_numbers = self.variable
    print(random_numbers)
Run Code Online (Sandbox Code Playgroud)