我是一名中级python程序员,但有一件事困扰了我一段时间。我正试图统一代码,使其可被许多项目重用。我面临的问题是如何通过某个类(或过程代码)访问函数(或方法),而不导入模块/类。我希望我的代码不知道是否存在其他文件/模块。这里有一个例子。
假设我的项目有以下文件体系结构(该体系结构将被其他项目重用,但略有变化):
主文件夹
main.py
folder1>module1>func1
folder2>module2>func2(func2调用func1,假设func1是一个常见的数学运算,类似于查找点是否位于公差范围内的平面上)
现在,在main.py中,我导入了module1和module2
假设main.py中有一个函数调用func2
## In main.py
def call_func1():
module2.func2()
## In module1.py
def is_point_on_plane():
print("testing")
## In module2.py
def func2():
is_point_on_plane() ## This is a function that is currently in module1
现在,我不想让module1或module2知道任何关于彼此的信息,甚至不想知道对方的存在。我尽量避免进口。
我解决这个问题的方法是将平面上的is point作为参数传递给main.py中的func2
def call_func1():
fcToCall = module1.is_point_on_plane
module2.func2(fcToCall)
## In module1
def is_point_on_plane():
print("testing")
## In module2
def func2(fcToCall):
fcToCall()
我相信有更好的方法可以做到这一点。一种更像Python的方式。在任何情况下,我都需要module1和module2完全独立并避免任何导入。
1条答案
按热度按时间7z5jn7bk1#
您可以导入所需项目的文件名,例如:“如果我希望使用名为‘main.py’的文件的另一个def函数,那么我将编写