gpt4 book ai didi

python - 强制对函数调用进行默认重新评估

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:17 26 4
gpt4 key购买 nike

据我所知,Python 仅在声明时评估函数的默认值一次。所以调用下面的函数printRandom

import random
def printRandom(randomNumber = random.randint(0, 10)):
print randomNumber

每次调用时都会打印相同 的数字而不带参数。有没有办法在每次函数调用时强制重新计算默认的 randomNumber 而无需手动执行?以下是我所说的“手动”的意思:

import random
def printRandom(randomNumber):
if not randomNumber:
randomNumber = random.randint(0, 10)
print randomNumber

最佳答案

没有。默认参数是在执行时设置的,也就是定义函数时。如果要重新执行它们,则需要重新定义函数。

标准的习语,也是你应该使用的,是

import random
def print_random(random_number=None):
if random_number is None:
random_number = 4 # chosen by fair dice roll.
# guaranteed to be random.
print random_number

请注意使用 None(单例)和 is 测试对象身份。您不应该使用 if not random_number,因为有许多值的计算结果为 bool 值 false —— 特别是 0

还有很多其他方法可以做到这一点,但没有理由不遵循惯例。

关于python - 强制对函数调用进行默认重新评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com