2014-06-12 11 views
6

दूसरा कोड क्यों काम करता है जबकि दूसरा करता है?आयात क्यों हमेशा नेस्टेड पैकेज आयात नहीं करता है?

पहले कोड:

import selenium 

driver = selenium.webdriver.Firefox() 

AttributeError: 'module' object has no attribute 'webdriver'

दूसरा कोड:

from selenium import webdriver 

driver = webdriver.Firefox() 
+1

मैं इसके बारे में भी उत्सुक हूं। मैंने देखा है कि जब आप मॉड्यूल आयात करते हैं, तब भी iPython नोटबुक चीजों को याद करता है, भले ही आप मॉड्यूल आयात * ' – Engineero

+1

के लिए क्या फायदेमंद है, सेलेनियम की' __init __। Py' सिर्फ सेलेनियम आयात सेलेनियम से है। यह कुछ और आयात नहीं करता है। – Michael

+1

@ माइकल ... तो इसका मतलब है कि कोई 'सेलेनियम.सेलेनियम आयात सेलेनियम' से लिखना चाहता है: डी –

उत्तर

12

नेस्टेड संकुल स्वचालित रूप से लोड नहीं कर रहे हैं; जब तक आप selenium.webdriver आयात नहीं करते हैं, यह एक विशेषता के रूप में उपलब्ध है। आयात करनाselenium पर्याप्त नहीं है।

यह करें:

import selenium.webdriver 

driver = selenium.webdriver.Firefox() 

कभी कभी पैकेज ही __init__.py पैकेज प्रारंभकर्ता में एक नेस्टेड पैकेज आयात करेगा; os आयात os.path, इसलिए os.path तत्काल उपलब्ध है भले ही आप केवल os आयात करें।

संबंधित मुद्दे