Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否需要初始化静态类变量?_Python_Class Variables - Fatal编程技术网

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

Python 是否需要初始化静态类变量?,python,class-variables,Python,Class Variables,几天前我开始学习python,我正在尝试不同的东西 我编写了如下代码: class ConsumeState: token 我得到了这个代码的以下错误 NameError:未定义名称“令牌” 因此,我将令牌初始化为“abc”,错误消失了 我的问题是,如果我现在不想定义静态变量,我应该怎么做?在python中总是需要初始化静态变量吗?与C、Java、C#等不同,在python中,您不需要初始化变量,甚至不需要声明它是字符串、int或float 您可以这样声明: u=set() u.ad

几天前我开始学习python,我正在尝试不同的东西

我编写了如下代码:

class ConsumeState:
    token
我得到了这个代码的以下错误

NameError:未定义名称“令牌”
因此,我将
令牌
初始化为
“abc”
,错误消失了

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

与C、Java、C#等不同,在python中,您不需要初始化变量,甚至不需要声明它是字符串、int或float

您可以这样声明:

u=set()
u.add("stack")
u.add("overflow")
u=set()
def pwsdw():
    some code here..
    u.add(x)
您也可以这样做:

u=set(["stack","overflow"])
s="stack"
s=[x for x in "overflow"]
这是一个单行线,但首先创建一个列表,然后创建一个集合

这将创建一个包含0-4之间所有数字幂的列表。你不需要声明l是一个列表,然后在其中添加内容。您也不需要声明x是int,甚至不需要初始化它

l = [x for x in range(5)]
在python中,您还可以执行以下操作:

u=set(["stack","overflow"])
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()
u.add("stack")
u.add("overflow")
u=set()
def pwsdw():
    some code here..
    u.add(x)
您将收到未初始化变量的错误消息

但是,您可以这样做:

u=set()
def pwsdw():
    global u
    some code
    u.add(x)
总之,python是一种非常灵活的语言。玩得开心。

与C、Java、C#等不同,在python中,您不需要初始化变量,甚至不需要声明它是字符串、int或float

您可以这样声明:

u=set()
u.add("stack")
u.add("overflow")
u=set()
def pwsdw():
    some code here..
    u.add(x)
您也可以这样做:

u=set(["stack","overflow"])
s="stack"
s=[x for x in "overflow"]
这是一个单行线,但首先创建一个列表,然后创建一个集合

这将创建一个包含0-4之间所有数字幂的列表。你不需要声明l是一个列表,然后在其中添加内容。您也不需要声明x是int,甚至不需要初始化它

l = [x for x in range(5)]
在python中,您还可以执行以下操作:

u=set(["stack","overflow"])
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()
u.add("stack")
u.add("overflow")
u=set()
def pwsdw():
    some code here..
    u.add(x)
您将收到未初始化变量的错误消息

但是,您可以这样做:

u=set()
def pwsdw():
    global u
    some code
    u.add(x)

总之,python是一种非常灵活的语言。玩得开心。

如果你不想定义静态变量,那就不要这样做。如果你不想给它任何值,但仍然想声明它,你可以做
token=None
token=None
。Python没有变量声明。你总是给一个变量赋值。如果您现在不想为其赋值,则不需要,并且当您这样做时,只需执行
consumerstate.token='whatever'
如果您不想定义静态变量,则不要执行该操作。如果您不想给它任何值,则可以执行
token=None
,Python没有变量声明。你总是给一个变量赋值。如果您现在不想分配给它,则不需要,并且当您分配时,只需执行
consumerstate.token='whatever'