是否需要初始化静态类变量?

2024-09-30 01:25:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我几天前开始学习python,我正在尝试不同的东西。你知道吗

我编写了如下代码:

class ConsumeState:
    token

这个代码有以下错误

NameError: name 'token' is not defined

所以我将token初始化为"abc",错误就消失了。你知道吗

我的问题是如果我现在不想定义静态变量该怎么办?在python中总是需要初始化静态变量吗?你知道吗


Tags: 代码nametoken定义is错误静态not
1条回答
网友
1楼 · 发布于 2024-09-30 01:25:21

与C、Java、C等等不同,在python中,您不需要初始化变量,甚至不需要声明它是字符串、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的类型从string改为list。我也可以在同一个列表中添加不同的对象。你知道吗

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是一种非常灵活的语言。玩得高兴。你知道吗

相关问题 更多 >

    热门问题