在所述函数内调用函数

时间:2017-03-18 15:58:00

标签: python function python-3.x

如何从同一个def中调用def?我的意思是,我想这样做:

def cal(cal):
    stat = stat_dict()
    profile = profile_dict()
    skill = skill_dict()
    ... Abreviation....
    elif cal == 'Phy': return round(stat['Str']*4 + stat['Con']/3 + stat['End']/2 + stat['Tou']/4 + stat['Agi']/6)
    elif cal == 'Inv': return round(cal('Phy') * (1 + skill['Hauling']/20))

我知道我可以将最后一行变为:

   elif cal == 'Inv': return round((stat['Str']*4 + stat['Con']/3 + stat['End']/2 + stat['Tou']/4 + stat['Agi']/6)* (1 + skill['Hauling']/20))

甚至:

def cal(cal):
  stat = stat_dict()
  profile = profile_dict()
  skill = skill_dict()
  X = round(stat['Str']*4 + stat['Con']/3 + stat['End']/2 + stat['Tou']/4 + stat['Agi']/6)
  .... Abreviation...
  elif cal == 'Phy': return X
  elif cal == 'Inv': retunr X * (1 + skill['Hauling']/20

但是我不想这样做,我想因个人原因而对同一个def进行调整......这可能吗?对不起我的英语不好。 (啊,我也使用python 3.6)

1 个答案:

答案 0 :(得分:4)

您的问题在于您的参数名称:

def cal(cal):

您已将参数命名为与您尝试调用的功能相同的内容,因此阴影该功能。如果您在函数内部说cal,那么您可以根据需要引用参数,而不是函数。

只需将参数(或函数)命名为其他内容即可。 (cal无论如何都不是函数或参数的良好描述性名称。)