我可以包含保存在另一个文件中的 class 方法的 Python 实现吗
Can I include Python implementation of class method saved in another file
在Python中,我们不能在class定义本身之外保存class方法的定义(据我所知),因为没有声明的概念。但是,我想知道我是否可以包含保存在独立文件中的方法实现的源代码,即让解释器替换有问题的代码段。但由于我从未见过这样的东西,这可能不是 Python 中的惯用语。那么,您如何处理 class 定义将非常长的烦恼呢?请纠正我,因为我是 Python 的新手,并且发现它与 C++ 有很大不同。
class Foo
def bar():
# How to include definition saved in another file?
import another_file
class Foo
def bar():
another_file.class_name/def_name ...
或仅导入特定定义
from another_file import def_name
class Foo
def bar():
def_name ...
可以做到!
第一个解决方案
bar.py
def bar(foo):
print foo
foo.py
from bar import bar as foo_bar
class Foo:
bar = foo_bar
备选方案
bar.py
def bar(foo):
print foo
foo.py
from bar import bar as foo_bar
class Foo:
def bar(self, *args, **kwargs):
return foo_bar(self, *args, **kwargs)
在Python中,我们不能在class定义本身之外保存class方法的定义(据我所知),因为没有声明的概念。但是,我想知道我是否可以包含保存在独立文件中的方法实现的源代码,即让解释器替换有问题的代码段。但由于我从未见过这样的东西,这可能不是 Python 中的惯用语。那么,您如何处理 class 定义将非常长的烦恼呢?请纠正我,因为我是 Python 的新手,并且发现它与 C++ 有很大不同。
class Foo
def bar():
# How to include definition saved in another file?
import another_file
class Foo
def bar():
another_file.class_name/def_name ...
或仅导入特定定义
from another_file import def_name
class Foo
def bar():
def_name ...
可以做到!
第一个解决方案
bar.py
def bar(foo):
print foo
foo.py
from bar import bar as foo_bar
class Foo:
bar = foo_bar
备选方案
bar.py
def bar(foo):
print foo
foo.py
from bar import bar as foo_bar
class Foo:
def bar(self, *args, **kwargs):
return foo_bar(self, *args, **kwargs)