【发布时间】:2021-08-25 21:40:27
【问题描述】:
抱歉这个愚蠢的问题,我似乎无法在任何地方找到答案。
我正在尝试将我的类转换为变量,但它给了我一个错误
NameError: name 'period' is not defined
class Stuff():
def __init__(self, period = 1, division = 1):
print(str(period), str(division))
stuff = Stuff(period, division)
但我不明白为什么它没有被定义,因为我特意将它定义为“1”,只是为了确定。
如果我不定义参数,我会得到同样的错误
class Stuff():
def __init__(self, period, division):
print(str(period), str(division))
stuff = Stuff()
我不想在调用参数之前定义参数,因为在此之前参数不会有值。 我也不明白为什么需要定义它,因为函数启动参数不是文字。
【问题讨论】:
-
如果你想用默认参数调用
Stuff,你需要stuff = Stuff() -
如果我在没有定义参数的情况下这样做,我会得到同样的错误。但是,在我调用它们并填充它们之前,参数不会有值,就像我使用普通函数一样。所以我无法定义它们。
-
如果您希望能够在没有显式参数的情况下实例化类,您想要
def __init__()行中的默认值。如果您想使用这些默认值,您不想调用Stuff()中的值。 -
要么您想调用 Stuff() 并使用参数的默认值,在这种情况下,方法必须具有其参数的默认值;或者您想在实例化类时为这些参数提供值,在这种情况下,您必须实际提供值。
标签: python python-3.x class default-arguments