|
2鱼币
各位大佬好 想问一下python里面 改classe 的值的问题 以下是我的代码
class addition():
def __init__(self,name):
self.name=name
if name=='red':
self.nb=0
if name=='blue':
self.nb=0
def func():
a=input("输入red或blue")
if a=='red'or a=='blue':
if a=='red':
new_a=addition(a)
b='blue'
new_b=addition(b)
if new_a.nb==new_b.nb:
new_a.nb=new_a.nb+1
print("%d"%(new_a.nb))
else:
new_b.nb=new_b.nb+1
print("%d"%(new_b.nb))
elif a=='blue':
new_a=addition(a)
b='red'
new_b=addition(b)
if new_a.nb==new_b.nb:
new_a.nb=new_a.nb+1
print("%d"%(new_a.nb))
else:
new_b.nb=new_b.nb+1
print("%d"%(new_b.nb))
else:
pass
while True:
func()
结果输出是:
输入red或bluered
1
输入red或blueblue
1
输入red或bluered
1
想问一下大佬 这里我第二次输入red 的时候为什么不是得到2 ?
如果我要得到2 我需要如何改我的代码?
class addition():
def __init__(self, name):
self.name = name
if name == 'red':
self.nb = 0
if name == 'blue':
self.nb = 0
dict = {'new_a':'', 'new_b':''}
def func():
while True:
a = input("输入red或blue")
if a == 'red' or a == 'blue':
if a == 'red':
if dict.get('new_a'):
new_a = dict.get('new_a')
else:
new_a = addition(a)
dict['new_a'] = new_a
b = 'blue'
if dict.get('new_b'):
new_b = dict.get('new_b')
else:
new_b = addition(b)
dict['new_b'] = new_b
if new_a.nb == new_b.nb:
new_a.nb = new_a.nb + 1
print("%d" % (new_a.nb))
else:
new_b.nb = new_b.nb + 1
print("%d" % (new_b.nb))
elif a == 'blue':
if dict.get('new_a'):
new_b = dict.get('new_a')
else:
new_b = addition(a)
dict['new_a'] = new_b
b = 'blue'
if dict.get('new_b'):
new_a = dict.get('new_b')
else:
new_a = addition(b)
dict['new_b'] = new_a
if new_a.nb == new_b.nb:
new_a.nb = new_a.nb + 1
print("%d" % (new_a.nb))
else:
new_b.nb = new_b.nb + 1
print("%d" % (new_b.nb))
else:
pass
func()
不太懂你要干啥 我只知道你每次都重新定义了一个新的类 导致每次都是1
|
最佳答案
查看完整内容
class addition():
def __init__(self, name):
self.name = name
if name == 'red':
self.nb = 0
if name == 'blue':
self.nb = 0
dict = {'new_a':'', 'new_b':''}
def func():
while True:
a = input("输入red或blue")
if a == 'red' or a == 'blue':
if a == 'red':
if dict.get('new_a'):
...
|