繁体   English   中英

python 解释器读取 function 定义套件中的内容吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM