如何从同一个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)
答案 0 :(得分:4)
您的问题在于您的参数名称:
def cal(cal):
您已将参数命名为与您尝试调用的功能相同的内容,因此阴影该功能。如果您在函数内部说cal
,那么您可以根据需要引用参数,而不是函数。
只需将参数(或函数)命名为其他内容即可。 (cal
无论如何都不是函数或参数的良好描述性名称。)