2024-03-28 14:12:51 发布
网友
假设我有这样的代码
class A: var1 = self.var0 def __init__(self, var0): self.var0 = var0
我该怎么办自身变量0不把var1放在init函数中?你知道吗
请尝试以下操作:
class A: def __init__(self, var0): self.var1 = self.var0 = var0
但是,我看不出这有什么意义,我更愿意像这样立即初始化它:
class A: def __init__(self, var0): self.var1 = var0
如果您希望有两个具有相同值的变量,请使用第一种方法。你知道吗
在您的代码中,var1 = self.var0处于类级别,而不是实例级别,因此self在这里没有意义。要查看它,请尝试以下操作:
var1 = self.var0
self
class C(object): field1 = 1 def __init__(self): self.field2 = 2 print(C.field1) print(C.field2) # should raise an exception instance = C() print(instance.field1) # not found in instance but found at upper level (class-level) print(instance.field2)
你有两个选择,我可以想到:
1)如果要使用A.var1=var0创建对象,请将其包含在init函数中:
class A: def __init__(self, var0): self.var0 = var0 self.var1 = self.var0
2)若您真的不想在init函数中使用var1,可以创建一个属于类的函数,如下所示:
class A: def __init__(self, var0): self.var0 = var0 def setVar1(var1): self.var1 = var1
然后要创建一个对象并将其v1值设置为v0,可以执行以下操作:
v0 = some_value a = A(v0) a.setVar1(v0)
编辑:
3)如“Blckknght”在对另一个答案的评论中所建议的:你可以链接赋值语句:
self.var0 = self.var1 = var0
请尝试以下操作:
但是,我看不出这有什么意义,我更愿意像这样立即初始化它:
如果您希望有两个具有相同值的变量,请使用第一种方法。你知道吗
在您的代码中,
var1 = self.var0
处于类级别,而不是实例级别,因此self
在这里没有意义。要查看它,请尝试以下操作:你有两个选择,我可以想到:
1)如果要使用A.var1=var0创建对象,请将其包含在init函数中:
2)若您真的不想在init函数中使用var1,可以创建一个属于类的函数,如下所示:
然后要创建一个对象并将其v1值设置为v0,可以执行以下操作:
编辑:
3)如“Blckknght”在对另一个答案的评论中所建议的:你可以链接赋值语句:
相关问题 更多 >
编程相关推荐