如何根据函数parentiss更改变量名称?

时间:2014-09-01 13:25:16

标签: python function printing

if strengh1 <=0:
    death1=True
else:
    death1 = False

if strengh2 <=0:
    death2=True
else:
    death2=False

def output(character):
    if death character == False:
        print
        print('Character', character ,' strengh is now %s' % strengh1)    
        print('Character ', character ,' skill is now %s' % skill1)
    else:
        print
        print('Character ', character ,' is dead')

output(1)
output(2)

大家好我正在做一些项目。这是我最后一行代码的一部分。有两个字符,我希望能够使用一个功能。我几乎完全是自学成才,而且我的编码很长,所以可能存在基本错误,或者我可能正在做一些无法工作的事情,但我怎样才能更改&#34; death&#34;使用函数调用函数中的函数变量?所以例如输出(10需要将死亡改为死亡1?这是可能的。此外,我需要能够在一个固体输出中打印这个 字符(然后是函数参数)现在已经死了

2 个答案:

答案 0 :(得分:0)

您的代码表明了对Python名称工作方式的深刻误解。只需设置character = 1并撰写death character 就不会访问death1,这根本没有任何意义。关于Python如何处理名称here,有一个很好的入门。

您可以通过将output实际需要的所有变量传递给def output(character, strength, skill, death): if not death: print print('Character', character ,' strength is now %s' % strength) print('Character ', character ,' skill is now %s' % skill) else: print print('Character ', character ,' is dead') output(1, strength1, skill1, death1) 来解决您的具体问题:

Character

这显然有点尴尬,因此下一步是将这些参数封装为Character类中的属性;见例如the tutorial。然后,您可以将单个{{1}}实例传递给函数。

答案 1 :(得分:0)

通常,最自然的解决方案是使用字典。

death = dict()
# most probably strength should be a dict too

if strengh1 <=0:
    death[1]=True
else:
    death[1] = False
# or death[1] = bool(strength1<=0)

if strengh2 <=0:
    death[2]=True
else:
    death[2]=False

def output(key):
  if death[key]== False:
    print
    print('Character', character ,' strengh is now %s' % strengh1)    
    print('Character ', character ,' skill is now %s' % skill1)
  else:
    print
    print('Character ', character ,' is dead')

output(1)
output(2)

根据1和2的含义,您可能希望使用字符串 - strength['muscles']death['poisoning']或许? (或strength['marketing']death['irrelevance']如果这是一个启动游戏。)