簡體   English   中英

如何從模塊中導入具有組合的 class?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM