[英]does python interpreter reads what's inside function definition suite?
假设我定义了一个 function 并且从未调用过它,python 解释器是否会读取 function 中的语句和表达式。
例如。
def foo(a, b):
return a+b
这回答了你的问题了吗?
$ python3 Python 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> def foo(a, b): ... return a+b ... >>> foo(1,2) 3 >>> foo(1,'2') Traceback (most recent call last): File "", line 1, in File "", line 2, in foo TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> foo('1','2') '12' >>>
言下之意:
第一次调用:“兼容”的参数将正常工作。
第二次调用的第一个参数是一个数字,而不是第二个,因此这会导致运行时错误。 几乎没有任何解释型(非类型)编程语言会在运行前检查这一点。
第三次调用; 再次兼容 arguments,两者都是字符串,因此会发生连接。
例如 C 可以在编译时检查“语法”,因为您必须事先定义变量和参数类型。
请注意,python 将解释加载的文件中的语句,如果它们在 def 之外;
即import
将在“编译时”执行print(...)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.