python类中的变量初始化
我想定义类似C里面的静态struct,形式大概是这样的classA:i=1A.j=[[A.i,A.i*k]forkinrange(3)]由于我的类A里面的变量很多,每一个...
我想定义类似C里面的静态struct,形式大概是这样的
class A:
i = 1
A.j = [ [A.i,A.i*k] for k in range(3) ]
由于我的类A里面的变量很多,每一个类似j得数组都这么写的话会很麻烦,但是如果我用这样的语法
class A:
i = 1
j = [ [i,i*k] for k in range(3) ]
程序报错:
NameError: global name 'i' is not defined
我想请教应该用什么方法进行初始化比较合适,谢谢 展开
class A:
i = 1
A.j = [ [A.i,A.i*k] for k in range(3) ]
由于我的类A里面的变量很多,每一个类似j得数组都这么写的话会很麻烦,但是如果我用这样的语法
class A:
i = 1
j = [ [i,i*k] for k in range(3) ]
程序报错:
NameError: global name 'i' is not defined
我想请教应该用什么方法进行初始化比较合适,谢谢 展开
2个回答
展开全部
【code】
class A:
i=0
j=[[0, 0], [0, 0], [0, 0]]
@staticmethod
def SetBase(value):
A.i=value
A.j=[ [A.i,A.i*k] for k in range(3) ]
#to use
print(A.i)
print(A.j)
A.SetBase(2)
print(A.i)
print(A.j)
A.SetBase(3)
print(A.i)
print(A.j)
【result】
0
[[0, 0], [0, 0], [0, 0]]
2
[[2, 0], [2, 2], [2, 4]]
3
[[3, 0], [3, 3], [3, 6]]
class A:
i=0
j=[[0, 0], [0, 0], [0, 0]]
@staticmethod
def SetBase(value):
A.i=value
A.j=[ [A.i,A.i*k] for k in range(3) ]
#to use
print(A.i)
print(A.j)
A.SetBase(2)
print(A.i)
print(A.j)
A.SetBase(3)
print(A.i)
print(A.j)
【result】
0
[[0, 0], [0, 0], [0, 0]]
2
[[2, 0], [2, 2], [2, 4]]
3
[[3, 0], [3, 3], [3, 6]]
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询