[英]How to import a class with composition from a module?
假設我有一個帶有以下兩個類的模塊example.py
。 一個包含另一個:
#example.py
class Employee():
def __init__(self,name):
Self.name=name
class Company():
def __init__(self,company,boss):
Self.company=company
self.boss = Employee(boss)
如果我想在另一個名為work.py
I go 的文件中實例化公司:
#work.py
from example import Company
mycompany=company('bmw','michael)
這段代碼似乎有效。 現在我不明白為什么,因為 python 如何知道文件work.py
中的 class Employee
?
work.py
不需要知道它。 Company.__init__
有自己對全局 scope example
的引用,其中查找了自由變量Employee
。
>>> from example import Company
>>> Company.__init__.__globals__['Employee']
<class 'example.Employee'>
from example import Company
在使用example.Company
初始化的work.py
中創建一個新的全局變量。 由於Company.__init__
不知道也不關心 work.py 的全局work.py
,因此無需在那里創建額外的Employee
全局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.