实例化 class 时如何指定包?
How can I specify the package when instantiating a class?
我有很多class在不同的包中同名。以下面的目录结构为例:
如何在 templates/Person class 的构造函数中声明 rules/Person 的实例?
我期望工作的代码(但在第 10 行有错误)如下:
from Template import Template
import rules
class Person(Template):
def __init__(self):
super(Person, self).__init__('Person')
self.rules = [
rules.Person() #this is an error
]
我想 PEP328 有答案。
from .myfolder import Template as Template
from .myfolder1 import Template as Template1
from .myfolder2 import Template as Template2
from pip_installed_library1 import Template as Template3
from pip_installed_library2 import Template as Template4
使用这种模式,他们从不共享名字。
我有很多class在不同的包中同名。以下面的目录结构为例:
如何在 templates/Person class 的构造函数中声明 rules/Person 的实例?
我期望工作的代码(但在第 10 行有错误)如下:
from Template import Template
import rules
class Person(Template):
def __init__(self):
super(Person, self).__init__('Person')
self.rules = [
rules.Person() #this is an error
]
PEP328 有答案。
from .myfolder import Template as Template
from .myfolder1 import Template as Template1
from .myfolder2 import Template as Template2
from pip_installed_library1 import Template as Template3
from pip_installed_library2 import Template as Template4
使用这种模式,他们从不共享名字。