python3:Python中是否有一种静态变量?



我是python的新手。

python中是否有static关键字的类似物?我需要实现一个简单的函数,从池中分配一个整数 ID,实际上它只是递增一个全局变量并返回它:

id = -1
def generate_id():
global id
id += 1
return id

这是正确的方法吗?C我可以在函数中声明一个static变量。

简单的方法是返回一个"生成器"函数,该函数在局部上形成闭包,然后只操作局部:

def new_id_generator():
id = 0
def gen():
nonlocal id
id += 1
return id
return gen
g = new_id_generator()
print(g(), g()) # 1 2

在python中,没有像java那样的"static"关键字。

对于功能

您可以向函数添加属性,并将其用作静态变量。

def incrfunc():
incrfunc.tab += 1
print incrfunc.tab
# initialize
incrfunc.tab = 0

对于类

但是,如果您正在使用python中的类,则以下是语言约定。

在类声明中赋值的所有变量都是 类变量。以及在类中赋值的变量 方法是实例变量。

class CSStudent: 
stream = 'cse'                  # Class Variable 
def __init__(self,name,roll): 
self.name = name            # Instance Variable 
self.roll = roll            # Instance Variable 

注意:如果你问我,利用类并在类外使用它们总是好的,这是我的意见。

相关内容

  • 没有找到相关文章

最新更新