假設我有一個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我的檔案中實體化公司:
#work.py
from example import Company
mycompany=company('bmw','michael)
這段代碼似乎有效。現在我不明白為什么,因為 python 如何知道Employee檔案中的類work.py?
如果我這樣做,代碼在 work.py 中會“更安全”嗎:
from example import Company, Employee
uj5u.com熱心網友回復:
work.py不需要知道它。Company.__init__對查找example自由變數的全域范圍有自己的參考Employee。
>>> from example import Company
>>> Company.__init__.__globals__['Employee']
<class 'example.Employee'>
from example import Company創建一個新的全域變數,work.py使用example.Company. 由于Company.__init__不知道或關心 的全域范圍work.py,因此無需在Employee那里創建額外的全域范圍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/363443.html
上一篇:減少PyQt應用程式的冗余代碼
