当前位置: 首页 > 知识库问答 >
问题:

导入前将变量传递给模块

鲜于阳
2023-03-14

我有以下设置。我正在尝试动态加载 a.py 模块(在这种情况下从 c.py 加载,并将其调用为BeLoaded)。然后我想导入另一个模块文件B,它有一个类,该类将继承该类到BeLoaded.otherClass。我知道如果我在 b.py 中导入 c.py 可以解决问题,但由于我是动态加载 c.py,我不确定如何做到这一点。如果我可以在导入变量之前以某种方式将变量传递给 b.py,它将起作用,但我不确定如何做到这一点。

这是我目前的设置。

a.py

import imp
from optparse import OptionParser

parser = OptionParser()
parser.add_option("-c","--configFile",dest="configFile", default="c.py",help="")
(options, args) = parser.parse_args()

modulePath=options.configFile
toBeLoaded = imp.load_source('toBeLoaded',modulePath)

import b

b.py

class TestClass(toBeLoaded.anotherClass):
  def __init__(self):
    print self.x
    #do stuff here

中文版

class anotherClass():
  def __init__(self):
    self.x=5

我收到以下错误:

Traceback (most recent call last):
  File "a.py", line 6, in <module>
    import b
  File "/test/b.py", line 1, in <module>
    class TestClass(toBeLoaded.anotherClass):
NameError: name 'toBeLoaded' is not defined

共有2个答案

孔飞舟
2023-03-14

正如我所说,我很确定你不能这样做,即使你找到了一种方法,你也不应该这样做。

您应该考虑以另一种方式组织您的代码,而不是在导入内部爬行。:)

编辑:由于您的目标似乎是加载配置文件,我建议:

    < li >使用基本数据类型而不是外部类引用 < li >查看configparser < li >使用json
宗政松
2023-03-14

不确定这是不是最干净的方法。但如果将c.py更改为

中文版

from __main__ import modulePath
import imp
toBeLoaded = imp.load_source('toBeLoaded',modulePath)

class TestClass(toBeLoaded.anotherClass):
  def __init__(self):
    print self.x
    #do stuff here
 类似资料:
  • 问题内容: 我有一个使用while循环创建的按钮。所以while循环为mysql表中的每一行创建一个表行。 我为该按钮编写了一行代码,该代码针对表的每一行再次创建,并且每个按钮基于该记录具有不同的值。 问题是我想使用它并以模式查看它,以便可以使用mysqli查询检索具有相同ID的记录。 这是模态的代码。 问题答案: 如果可以,我对你是正确的。 模态触发按钮 Bootstrap Modal事件以使用

  • 如果ngFor循环使用带有then/else语法的模板,如何将ngFor循环中的当前变量传递给ngIf? 当内联使用时,它们似乎通过罚款,但不能从模板访问,例如: 模板似乎根本无法访问,但如果内联使用,它可以工作。 在下面的链接中有一个工作和不工作版本的完整例子

  • 问题内容: 我有Google地图提供的JavaScript值,需要将其保存在MySQL数据库中。 其实我有变量 我需要将该变量传递给PHP变量lugar 问题答案: 如果要在页面转换时进行操作,则可以通过表单或在URL中传递它,然后仅使用或接收变量。 如果您需要无缝完成它,那么您可能需要考虑使用AJAX。

  • 问题内容: 我有一个PHP会话变量,在整个会话过程中仍然有效。在开头部分,我包含了我的JavaScript文件。 如果需要以下内容,如何将会话变量传递到JavaScript文件中。 由于无法在JavaScript文件中识别出,因此上面的代码不起作用。因此,我必须放入PHP文件本身,但是如何将其保留在JavaScript文件中? 问题答案: 在您的PHP文件中,您可以将用户设置为全局变量: 在包含外

  • 问题内容: 如果我有一个指令,我可以这样调用它 我该如何访问?我在函数中使用时会得到实际的字符串。当我检查html时,实际上说。 问题答案: 尝试 然后 演示:柱塞

  • 问题内容: 如何在不刷新页面的情况下将变量从jQuery传递到PHP?当我单击一个复选框时,我想将一个变量从jQuery传递到PHP。我也在使用formdialog。 我的PHP代码 我的JavaScript代码 问题答案: Ajax可以做到这一点。谷歌它,并检查api.jquery.com并查看ajax函数,.ajax(),.post(),.get(),.load()等。 关于您的特定问题,这是