我有這個問題了功課:名稱衝突
對於模塊1,模塊2,和客戶端模塊如下圖所示,表明其進口標識符將導致名稱衝突如果導入的標識符是不完全合格。
我回答:
func_2
衝突module2
和module3
func_3
衝突之間module2
和main
之間。然而,在文中列出的答案僅僅是
func_3
。
我錯了嗎?
謝謝。
我有這個問題了功課:名稱衝突
對於模塊1,模塊2,和客戶端模塊如下圖所示,表明其進口標識符將導致名稱衝突如果導入的標識符是不完全合格。
我回答:
func_2
衝突module2
和module3
func_3
衝突之間module2
和main
之間。然而,在文中列出的答案僅僅是
func_3
。
我錯了嗎?
謝謝。
在模塊1中,沒有名稱衝突,因爲模塊1不知道模塊2和客戶端模塊存在。 module2不知道module1和客戶端模塊是否存在。客戶端模塊,但是,進口module1和module2。因此,它定義了func_1一次(在module1中),func_2兩次(在module1和module2中)以及func_3兩次(在module2和客戶端模塊中)。爲了說明,我將寫兩個文件:main_module和imported_module。
imported_module看起來是這樣的:
x = True
print 'x in imported_module: %s' % ('x' in locals())
print 'y in imported_module: %s' % ('y' in locals())
main_module看起來是這樣的:
y = True
from imported_module import *
print "" # put a blank line between what imported_module prints and what
# main_module prints
print 'y in main_module: %s' % ('y' in locals())
print 'x in main_module: %s' % ('x' in locals())
運行main_module結果:
y in imported_module: False
x in imported_module: True
y in main_module: True
x in main_module: True
main_module有兩個變量,因爲它定義ÿ並導入x。 imported_module有x,因爲它定義了它,但它沒有y。
感謝zondo。這非常有幫助。 – jratliff
請將該圖片中的3個示例複製到您的問題中。 –
你是對的,文字是錯誤的。 –
謝謝Antti。我試圖導入圖像,但是當我發佈時,它變成了鏈接。我是新來的。沒有預覽帖子的方法嗎? 感謝您的幫助。 – jratliff