几天前我开始学习python,我正在尝试不同的东西。
我编写的代码如下:
class ConsumeState:
token
此代码出现以下错误
NameError: name 'token' is not defined
所以我将token
初始化为"abc"
,错误消失了。
我的问题是如果我不想在此时定义静态变量该怎么办呢?是否总是需要在python中初始化静态变量?
答案 0 :(得分:0)
与C,Java,C#等不同,在python中,您不必初始化变量,甚至声明它是String或int或float。
您可以这样声明:
u=set()
u.add("stack")
u.add("overflow")
你也可以这样做:
u=set(["stack","overflow"])
这是一个单行,但先创建一个列表,然后创建一个列表。
这将创建一个列表,其中包含0-4中所有数字的幂。您不需要声明l是列表然后在其中添加内容。你也不需要声明x是一个int或甚至初始化它。
l = [x for x in range(5)]
在python中你也可以这样做:
s="stack"
s=[x for x in "overflow"]
看到了吗?我只是将s的类型从字符串更改为列表。我也可以在同一个列表中添加不同的对象。
s.append(5)
如果我现在打印s,我会得到这个:
['o', 'v', 'e', 'r', 'f', 'l', 'o', 'w', 5]
5仍然是仅包含字符串对象的列表中的整数。
我也可以使用与其他对象不相同的整数进行操作
print(s[-1:][0]/5)
这例如打印5/5。 s [-1:]告诉python返回最后一个对象的列表。在该列表中,我选择[0],即5,然后将其除以5。
如果我要做一个forloop,我会得到错误,我不能使用除了字符串类型的除法运算。
如果你要做这样的事情:
u=set()
def pwsdw():
some code here..
u.add(x)
您会收到错误,表示您没有初始化变量。
你可以这样做:
u=set()
def pwsdw():
global u
some code
u.add(x)
总而言之,python是一种非常灵活的语言。玩得开心。