如何调用另一个python文件中的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调用另一个python文件中的代码相关的知识,希望对你有一定的参考价值。

Python 模块
模块让你能够有逻辑地组织你的Python代码段。
把相关的代码分配到一个 模块里能让你的代码更好用,更易懂。
模块也是Python对象,具有随机的名字属性用来绑定或引用。
简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。
例子
一个叫做aname的模块里的Python代码一般都能在一个叫aname.py的文件中找到。下例是个简单的模块support.py。
def print_func( par ):
print "Hello : ", par
return

import 语句
想使用Python源文件,只需在另一个源文件里执行import语句,语法如下:
import module1[, module2[,... moduleN]

当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。
搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块support.py,需要把命令放在脚本的顶端:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 导入模块
import support

# 现在可以调用模块里包含的函数了
support.print_func("Zara")
参考技术A 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了“hello world”),通常情况下,我们都需要在一个文件中调用另外一个文件的函数呀数据等等,总之要操作其他文件中的代码,在Java中,只要在同一个文件目录下,我们就不需要通过import导入,但是在Python中,我们就需要通过import来进行导入,这样我们才能应用其他文件中定义的函数和数据等代码。 对于刚接触python的我们,这是我们需要掌握的。
下面就以两个文件为例,例如我们有a.py和b.py两个文件,当我们需要在b.py文件中应用a.py中的func( )函数时,应该如何做呢,有两种情况,分别为在同一文件目录下和不在同一目录下进行说明。
同一文件目录下
在b.py文件中用下面两条语句即可完成对a.py文件中func( )函数的调用
import a #引用模块
a.func( )
或者是
import a#应用模块
from a import func #引用模块中的函数
func() #这里调用函数就不需要加上模块名的前缀了
不同文件目录下
若不在同一目录,python查找不到,必须进行查找路径的设置,将模块所在的文件夹加入系统查找路径
import sys
sys.path.append(‘a.py所在的路径’)
import a
a.func()

如何从 Python 中的另一个文件调用类方法?

【中文标题】如何从 Python 中的另一个文件调用类方法?【英文标题】:How do I call a class method from another file in Python? 【发布时间】:2018-01-05 19:55:21 【问题描述】:

我正在学习 Python,并且在同一个目录中有两个文件。

printer.py

class Printer(object):
    def __init__(self):
        self.message = 'yo'

    def printMessage(self):
        print self.message

if __name__ == "__main__":
    printer = Printer()
    printer.printMessage()

如何从同一目录中的另一个文件example.py 调用printMessage(self) 方法?我认为this answer 很接近,但它显示了如何从同一文件中的另一个类调用类方法。

【问题讨论】:

你导入printed.py了吗? 对这个问题的多次反对让我有点生气。 3 年前,我还是一个初学者,即使在阅读了 SO 帖子之后,我也很沮丧。对于想要自学的初学者来说,如何使用导入系统是非常困难的。 【参考方案1】:

在example.py文件中你可以写下面的代码

从打印机导入打印机

prnt = 打印机()

prnt.printer()

【讨论】:

【参考方案2】:

@Gleland 的答案是正确的,但如果您想为整个项目使用 Printer 类的一个共享实例,那么您需要将 Printer 的实例化移出 if 子句和导入实例,而不是类,即:

class Printer(object):
    def __init__(self):
        self.message = 'yo'

    def printMessage(self):
        print self.message

printer = Printer()

if __name__ == "__main__":
    printer.printMessage()

现在,在另一个文件中:

from printer import printer as pr
pr.printMessage()

【讨论】:

不,如果没有实例作为参数,您不能调用未绑定的方法。 我没有调用未绑定的方法。请再看看。与其他@gleland 答案的唯一区别是我导入的是实例,而不是类。 @KlausD。您能否修改您的评论并撤消反对票?【参考方案3】:

你必须导入它并像这样调用它:

import printer as pr

pr.Printer().printMessage()

【讨论】:

这是不正确的。 printMessage 不是静态的。您需要创建Printer 类的实例。 你正在调用一个没有参数的类方法。我猜你的意思是pr.Printer().printMessage() @ChristianK。是的,刚刚修好了。谢谢

以上是关于如何调用另一个python文件中的代码的主要内容,如果未能解决你的问题,请参考以下文章

如何调用另一个python文件中的代码

python如何在一个模块中调用另一个模块中的变量

如何从 Python 中的另一个文件调用类方法?

python调用另一个目录,另一个文件 中的函数报错,怎么解决

python 一个.py文件如何调用另一个.py文件中的类和函数

C#如何调用JS文件中的函数