我可以跨选定的python函数和类方法从一个文件复制到另一个文件吗?
我有一个python文件,它是一个集合我可以跨选定的python函数和类方法从一个文件复制到另一个文件吗?,python,automation,Python,Automation,我有一个python文件,它是一个集合函数,类和方法等。我需要解析它,这样我就可以提取出指定的函数和类,包括我需要的方法 是否有一个解析器可以很好地解析python代码来满足这种需求?内置的ast模块能帮助我吗 例如: 输入:Main.py def f_one(): """ """ pass class c_one(): """ """ def m_one(): """ """ pass def m_two():
函数
,类
和方法
等。我需要解析它,这样我就可以提取出指定的函数
和类
,包括我需要的方法
是否有一个解析器
可以很好地解析python
代码来满足这种需求?内置的ast
模块能帮助我吗
例如:
输入:Main.py
def f_one():
"""
"""
pass
class c_one():
"""
"""
def m_one():
"""
"""
pass
def m_two():
"""
"""
pass
def m_three():
"""
"""
pass
class c_two():
def m_one():
"""
"""
pass
目标是在f_one
、c_one
和m_one
之间进行复制,更一般地说,复制我指定的代码(函数、类等)
输出:Copy.py
def f_one():
"""
"""
pass
class c_one():
"""
"""
def m_one():
"""
"""
pass
您只需导入它:
from Main import f_one, c_one
c = c_one()
c.m_two()
您只需导入它:
from Main import f_one, c_one
c = c_one()
c.m_two()
您可以使用
inspect.getsource()
这会将f_one
和c_one
的完整源代码写入Copy.py。如果您只需要c_one
的一部分,则必须分别检查您需要的所有成员(例如inspect.getsource(Main.c_one.m_one)
)并手动组装它们
您还可以使用inspect.getsourcelines()
逐行获取对象的源代码(例如,如果您只需要标题)
请注意,对于从编译文件导入,这显然是不可能的。您可以使用
inspect.getsource()
这会将f_one
和c_one
的完整源代码写入Copy.py。如果您只需要c_one
的一部分,则必须分别检查您需要的所有成员(例如inspect.getsource(Main.c_one.m_one)
)并手动组装它们
您还可以使用inspect.getsourcelines()
逐行获取对象的源代码(例如,如果您只需要标题)
请注意,对于从编译文件导入,这显然是不可能的。您的意思是
导入
?不,我只是尝试自动执行通常执行的复制粘贴工作。我刚才描述了如何复制粘贴:-),所以您只想提取Main.py中每个类和函数的名称?我将使用。如果您只想导入一个类,那么方法可能会有所帮助。//编辑:如果您只想将一个函数从main.py
传递到另一个函数foo()
,只需执行foo(c_one.m_one)
。您所说的一切都不能说明不使用import
的原因。如果你想在另一个文件中使用f_one
和c_one
,你可以从主导入f_one,c_one执行。你的意思是import
?不,我只是在尝试自动执行我通常执行的复制粘贴工作。我刚才描述了如何复制粘贴:-),所以您只想提取Main.py中每个类和函数的名称?我将使用。如果您只想导入一个类,那么方法可能会有所帮助。//编辑:如果您只想将一个函数从main.py
传递到另一个函数foo()
,只需执行foo(c_one.m_one)
。您所说的一切都不能说明不使用import
的原因。如果要在另一个文件中使用f_one
和c_one
,可以从主导入f_one、c_one
执行。