【发布时间】:2021-07-05 19:14:15
【问题描述】:
def AtomicWeight(Z: "int"):
return AtomicWeight(Z)
z = 1.45
AtomicWeight(z)
type(z)
有人能解释一下这个函数在做什么以及为什么它说超出了最大递归深度吗?我尝试增加最大递归,但它不起作用。还有其他写法吗?
【问题讨论】:
-
你在函数体内调用函数本身。它被称为递归。你调用它一次,它再次调用该函数,它再次调用该函数等等......没有什么可以阻止无限调用。就目前这个功能而言,它没有太大意义。
-
你会如何重写这个函数?另外,你能告诉我 (Z: "int") 是做什么的吗?
-
它被称为type hint。它说
Z应该是一个整数。我也相信它是Z: int而不是Z: "int"。无论如何,目前还不清楚你想用这个函数实现什么,因为它除了抛出一个 RecursionError 之外什么都不做。
标签: python function refactoring