我有一堆脚本来执行任务.我真的需要知道项目的调用图,因为它非常令人困惑.我无法执行代码,因为它需要额外的硬件和软件才能执行此操作.但是,我需要理解它背后的逻辑.所以,我需要知道是否有一个工具(不需要任何python文件执行)可以使用模块而不是trace或python解析器构建调用图.我有这样的工具用于C但不用于python.
谢谢.
我正在尝试使用函数式编程来创建包含键和要执行的函数的字典:
myDict={}
myItems=("P1","P2","P3",...."Pn")
def myMain(key):
def ExecP1():
pass
def ExecP2():
pass
def ExecP3():
pass
...
def ExecPn():
pass
Run Code Online (Sandbox Code Playgroud)
现在,我已经看到用于在模块中查找已定义函数的代码,我需要执行以下操作:
for myitem in myItems:
myDict[myitem] = ??? #to dynamically find the corresponding function
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何列出所有Exec函数,然后使用字典将它们分配给所需的项目?所以最后我会myDict["P1"]() #this will call ExecP1()
我真正的问题是我有大量的这些项目,我创建了一个库来处理它们,所以最终用户只需要调用 myMain("P1")
我认为使用检查模块,但我不确定如何做到这一点.
我有理由避免:
def ExecPn():
pass
myDict["Pn"]=ExecPn
Run Code Online (Sandbox Code Playgroud)
是我必须保护代码,因为我使用它来提供我的应用程序中的脚本功能.
我正在使用threading.py,我有以下代码:
import threading
class MyClass(threading.Thread):
def __init__(self,par1,par2):
threading.Thread.__init__(self)
self.var1 = par1
self.var2 = par2
def run(self):
#do stuff with var1 and var2 while conditions are met
...
...
...
myClassVar = MyClass("something",0.0)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
18:48:08 57 S E myClassVar = MyClass("something",0.0)
18:48:08 58 S E File "C:\Python24\Lib\threading.py", line 378, in `__init__`
18:48:08 59 S E assert group is None, "group argument must be None for now"
18:48:08 60 S E AssertionError: group argument must be None for now
Run Code Online (Sandbox Code Playgroud)
我是一个使用python的新手,这是我第一次使用线程...
这里的错误是什么?
谢谢, …
python ×3
function ×2
call-graph ×1
class ×1
dictionary ×1
inheritance ×1
inspect ×1
module ×1
static ×1