python - 为什么 python 在定义时而不是在调用时评估函数的参数?

标签 python python-3.x

我很惊讶地发现,在 Python 中,函数参数列表中的类是在定义函数时实例化的,而不是在调用函数时实例化的。

考虑以下代码

   class A:
       def __init__(self):
           print("init method called")

   def f(a=A()):
       print("function f called")

   f()
   f()

这将给出以下输出:

init method called
function f called
function f called

因此,该程序中仅构造了一个类 A 的对象,而不是每次调用函数 f 时都构造了一个对象。 为什么会这样?这是解释性语言的共同特征吗?

最佳答案

关于python - 为什么 python 在定义时而不是在调用时评估函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57688643/

相关文章:

装饰器的 Python 3 类型提示

python - 如何为每个索引值添加差异行?

Python 请求模块 JSON 格式

python - 余弦相似度和余弦距离的区别

python - Tensorflow Executor 无法创建内核。未实现: Cast string to float is not supported

python - 用从变量中随机选择的整数替换整数

python - argparse 在解析其他选项后调用一个函数

javascript - python 与 JavaScript 中的异步等待之间的区别

python-3.x - 如何使用 asyncio 在 Python 3 中异步运行 requests.get?

python - 在python中组合多个项目列表