怎么修改同一class里的属性?
B继承了A的num,如果1+1==2,继承的num==1,应该怎么实现?class A():
num =0
class B(A):
def enter(self):
if 1+1==2:
num = 1
return num ???不明白 永恒的蓝色梦想 发表于 2020-5-26 18:08
???不明白
就是说class B继承A,那么class B也是num =0。
现在想在class B 添加个判断,True的时候,num=1 hellolouis 发表于 2020-5-26 18:18
就是说class B继承A,那么class B也是num =0。
现在想在class B 添加个判断,True的时候,num=1
这样?class B(A):
if 1+1==2:
num = 1 if 1+1==2:
A.num = 1 Stubborn 发表于 2020-5-26 18:24
你这样不就把 A 的 num 改变了吗…… 永恒的蓝色梦想 发表于 2020-5-26 18:25
你这样不就把 A 的 num 改变了吗……
就是说class B继承A,那么class B也是num =0。
现在想在class B 添加个判断,True的时候,num=1
不是想B的num=1嘛{:10_261:} Stubborn 发表于 2020-5-26 18:28
就是说class B继承A,那么class B也是num =0。
现在想在class B 添加个判断,True的时候,num=1
但是也不能改变 A 的 num 啊…… 本帖最后由 _2_ 于 2020-5-27 13:05 编辑
这里可能会用到一些魔法方法,
如果没有学到就往后看看
class A:
def __init__(self):
self.num = 0
class B(A):
def __init__(self):
A.__init__(self)
if 1 + 1 == 2:
self.num = 1 永恒的蓝色梦想 发表于 2020-5-26 18:30
但是也不能改变 A 的 num 啊……
那就改实例化的呗,{:10_254:} 永恒的蓝色梦想 发表于 2020-5-26 18:23
这样?
只能这样吗?我想在def里面做判断,比如
class B(A):
num =0
def enter(self):
if 1+1=2:
………
## 如果True,num就等于1
想要这结果:
a = B()
a.num==1 hellolouis 发表于 2020-5-26 18:34
只能这样吗?我想在def里面做判断,比如
class B(A):
class A():
num =0
class B(A):
def enter(self):
if 1+1==2:
self.num = 1
return self.num 永恒的蓝色梦想 发表于 2020-5-26 18:36
a = B()
a.enter()是等于1
但是想要的是:
a.num 还是等于0 _2_ 发表于 2020-5-26 18:32
这里可能会用到一些魔法方法,
如果没有学到就往后看看
这代码运行出错的?
TypeError: __init__() missing 1 required positional argument: 'self' hellolouis 发表于 2020-5-26 23:11
a = B()
a.enter()是等于1
你描述的绝了……class A():
num =0
class B(A):
def enter(self):
if 1+1==2:
return 1
return self.num hellolouis 发表于 2020-5-26 23:13
这代码运行出错的?
A.__init__(self)
我傻了{:10_269:} hellolouis 发表于 2020-5-26 23:11
a = B()
a.enter()是等于1
a.num想等于0,又要保持a.enter() == 1,那就建个实例变量class A():
num =0
class B(A):
def __inti__(self):
self.num = 0
def enter(self):
if 1+1==2:
num = 1
return num
a = B()
print('a.enter()=%d\na.num=%d'%(a.enter(),a.num))
页:
[1]