python - exec inits 类中的类声明,但函数不起作用
问题描述
我将附上两个代码块,第一个是运行的主要代码,第二个是包含用于测试目的的示例类的 testClass 文件。要了解发生了什么,可能最容易自己运行代码。当我调用 sC.cls.print2() 时,它说 self 参数未实现。通常在使用类时,self(在这种情况下)将是 sC.cls,您不必将其作为参数传递。非常感谢任何关于为什么会发生这种情况的建议,我认为这与 exec 的范围有关,但即使我在 exec 中运行此函数,它也会给出相同的错误,我无法找到解决方法。如果您想了解更多信息,请询问!
import testClass
def main():
inst = testClass.myClass()
classInfo = str(type(inst)).split()[1].split("'")[1].split('.')
print(classInfo)
class StoreClass:
def __init__(self):
pass
exec('from {} import {}'.format(classInfo[0], classInfo[1]))
sC = StoreClass()
exec('sC.cls = {}'.format(classInfo[1]))
print(sC.cls)
sC.cls.print2()
if __name__ == '__main__':
main()
class myClass:
def printSomething(self):
print('hello')
def print2(self):
print('hi')
解决方案
推荐阅读
- algorithm - 如何计算回溯的空间复杂度?
- node.js - 如何使用其链接的 css 文件呈现部分视图
- python - 保持选定的树视图行可见
- react-native - 使用导航字段创建新组件
- c# - Async/Await 和 Web API 阻止执行
- python - python中的Lambda表达式不会给出正确的输出
- sql - 在 SQL 中使用 CTE 时出现语法错误
- spring - 将 RequestParam 数据传递给 Spring RestController
- cocoa - NSOutlineView 检测子项何时折叠
- java - Spring Cloud Stream 多主题事务管理