python教程—将python源代码分割成多个文件?-Python实用宝典

python教程—将python源代码分割成多个文件?

我有一段代码,我想把它分成多个文件。在matlab中,可以简单地调用.m文件,只要它没有被定义为任何特定的东西,它就会像被调用代码的一部分一样运行。例子(编辑): 测试。米(matlab)

我有一段代码,我想把它分成多个文件。在matlab中,可以简单地调用.m文件,只要它没有被定义为任何特定的东西,它就会像被调用代码的一部分一样运行。例子(编辑):< br >
<强>测试。m < /强> (matlab)

    function [] = test() ... some code using variables ... test2

<强> test2。m < /强> (matlab)

    ... some more code using same variables ...

调用测试运行测试中的代码和test2中的代码。

python有类似的方法吗?更多的代码…,然后将其读入一个外部文件,就好像它是从该文件中调用的一样。

回答

我正在研究python中模块的用法,我想我应该从两个角度回答Markus在上面评论中提出的问题(“当变量嵌入模块时,如何导入变量?”):

  1. 变量/函数
  2. 类属性/方法。

下面是我如何重写主程序f1.py来演示Markus的变量重用:

    import f2 myStorage = f2.useMyVars(0) # initialze class and properties for i in range(0,10): print "Hello, " f2.print_world() myStorage.setMyVar(i) f2.inc_gMyVar() print "Display class property myVar:", myStorage.getMyVar() print "Display global variable gMyVar:", f2.get_gMyVar()

下面是我将如何重写可重用模块f2.py:

    # Module: f2.py # Example 1: functions to store and retrieve global variables gMyVar = 0 def print_world(): print "World!" def get_gMyVar(): return gMyVar # no need for global statement def inc_gMyVar(): global gMyVar gMyVar += 1 # Example 2: class methods to store and retrieve properties class useMyVars(object): def __init__(self, myVar): self.myVar = myVar def getMyVar(self): return self.myVar def setMyVar(self, myVar): self.myVar = myVar def print_helloWorld(self): print "Hello, World!"

当f1.py执行时,输出如下:

    %run "f1.py" Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Display class property myVar: 9 Display global variable gMyVar: 10

我认为马斯的观点是

  • 若要多次重用模块的代码,请将模块的代码放入
    函数或类,
  • 若要重用作为属性存储在模块中的变量,请初始化
    类中的属性,并添加“getter”和“setter”方法
    变量不需要复制到主程序中,
  • 若要重用模块中存储的变量,请初始化变量并使用
    getter和setter函数。setter函数将声明
    变量是全局的。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
4

发表评论