开发者社区> 问答> 正文

如果python运行文件“逐行”,它如何在定义函数之前使用它?

我现在正在学习python,在学习了Java之后,现在我知道Java首先编译整个文件然后运行它,在python中,从我所理解的它运行程序的同时,它“逐行”编译它。 我不明白的是,在定义一个函数之前,我怎么能调用它。 我是从Java编写我所有的“帮助方法”后,需要他们的方法,我认为这是更容易阅读的方式。 所以我试着用python做同样的事情,它成功了。 为什么? 问题来源StackOverflow 地址:/questions/59382335/if-python-run-the-file-line-after-line-how-can-it-use-a-function-before-its-b

展开
收起
kun坤 2019-12-27 17:13:23 566 0
1 条回答
写回答
取消 提交回答
  • 这里的一个重要说明是,重要的不是函数创建的顺序,而是函数调用完成的时间。 以下列代码为例:

    def add_one(new):
        return my_add(new, 1)
    
    def my_add(x, y):
        return x + y
    
    my_var = 2
    print("The value of my_var is: {}".format(my_var))
    my_var = add_one(my_var)
    print("The value of my_var is: {}".format(my_var))
    

    它的收益率 这是因为在调用add_one函数时,两个函数都已经存在了。但是如果在定义my_add之前尝试调用add_one…

    def add_one(new):
        return my_add(new, 1)
    
    my_var = 2
    print("The value of my_var is: {}".format(my_var))
    my_var = add_one(my_var)
    print("The value of my_var is: {}".format(my_var))
    
    def my_add(x, y):
        return x + y
    

    我们得到:

    The value of my_var is: 2
    Traceback (most recent call last):
      File "c:\Users\wundermahn\Desktop\Stack.py", line 6, in <module>
        my_var = add_one(my_var)
      File "c:\Users\J39304\Desktop\Stack.py", line 2, in add_one
        return my_add(new, 1)
    NameError: name 'my_add' is not defined
    

    查看Python脚本中函数的顺序是否重要?更多的

    2019-12-27 17:13:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载