python - 为什么 python exec Define class 不起作用

标签 python class exec

这是代码,在 _getTestObj() 中创建演示实例时,由 exec 定义的类“demo”不起作用。

文件名:test.py

class runOneIni():
    def _getTestObj(self):
        demo(self.tcName,secSetup,doc)



def start():   
    #implicit define 'demo' class by exec is not working, get error in runOneIni->_getTestObj, Error is :
    #  NameError: name 'demo' is not defined
    a='global demo'
    exec(a)

    str="class demo(tInvokeMethod.tInvokeMethod): pass'
    exec(str)

    #Explict define demo class is working
    #global demo
    #class demo(tInvokeMethod.tInvokeMethod): pass


if __name__ == '__main__':
    start()    

最佳答案

(1) 您有一个未终止的字符串

(2) 不需要使用 exec 来执行此操作。 class 本身是一条可执行语句,它可以出现在任何其他语句可以出现的任何地方(需要表达式语句的地方除外)。

关于python - 为什么 python exec Define class 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363068/

相关文章:

python - Pandas:从 DataFrame 中的列表中获取值

python - 具有不同列值的 django modelchoicefield

java - 创建java程序帮助

python - 运行字符串中包含的 Python 代码

c - 使用进程通过管道运行命令

java - 带有 exec 返回错误 7 的 ant 任务

python - 如何使用 scipy 查找优化函数的参数?

python - lda[doc_bow] 和 lda.inference(corpus) 之间的区别是什么?

php - 使用 php 调整图像大小

C# Basic OOP - 使用构造函数制作类的字典