1

我了解如何实际链接 python 文件,但是,我不明白如何从这些链接文件中获取变量。我试图抓住它们,但我不断收到 NameError。

我该怎么做呢?我想链接文件的原因是简单地整理我的脚本,而不是让它长 10000000000 行。另外,在导入的 python 脚本中,我是否必须再次导入所有内容?另一个问题,我在使用其他脚本函数时是否使用 self 函数?

IE;

主脚本:

import sys, os
import importedpyfile

导入的 Py 文件

import sys, os
4

3 回答 3

3

我了解如何实际链接 python 文件,但是,我不明白如何从这些链接文件中获取变量。我试图抓住它们,但我不断收到 NameError。

你是怎么做到的?发布更多代码。例如,以下工作:

文件1.py

#!/usr/bin/env python

from file2 import file2_func, file2_variable

file2_func()
print file2_variable

文件2.py:

#!/usr/bin/env python

file2_variable = "I'm a variable!"

def file2_func():
    print "Hello World!"

另外,在导入的 python 脚本中,我是否必须再次导入所有内容?

不,当 python 解释器读取该文件时,应该导入模块。

另一个问题,我在使用其他脚本函数时是否使用 self 函数?

不,这通常是为了访问班级成员。请参阅python 自我解释

导入文件的方法也不止一种。有关一些解释,请参阅其他答案。

于 2013-01-13T09:27:46.233 回答
1

我认为您要问的是如何从 .py 文件访问全局变量,而无需处理命名空间。

在您的主脚本中,将调用替换为import importedpyfile这样说

from importedpyfile import *

理想情况下,您按照自己的方式保留代码。但是,只需使用导入的pyfile 命名空间引用这些全局变量。

例如

import importedpyfile
importedpyfile.MyFunction()  # calls "MyFunction" that is defined in importedpyfile.py
于 2013-01-13T09:22:12.870 回答
0

在 C/C++ 将库链接到可执行文件的意义上,Python 模块不是“链接”的。Python导入操作会创建一个引用导入模块的名称;没有这个名字,就没有(直接)访问另一个模块的方法。

于 2013-01-13T09:22:03.080 回答