И class
, и import
- это обычные инструкции Python, в которых нет никакой магии (ну, некоторые вещи происходят под капотом, но, тем не менее, это просто хорошие хорошие инструкции Python).
Python просматривает ваш исходный код сверху вниз, выполняя каждую инструкцию по своему пути - независимо от того, является ли это инструкция class
, которая создает новый объект для класса, или инструкция import
, которая импортирует новый модуль в текущую область.
Более того, поскольку инструкция import
такая же хорошая, как и любая другая, вы можете просто поместить ее в class
- вы можете думать о классах так же, как вы думаете о файлах .py внутри каталогов - и в последнем Если вы, вероятно, привыкли к этому, import
может быть помещен непосредственно в основную область .py файла.
Записывая все это, я не уверен, чего бы вы хотели достичь, добавив это в свой класс:
myStringHtml = urllib2.urlopen("http://www.google.com").read()
- эта инструкция анализируется при создании класса, а затем все объекты класса совместно используют одно и то же значение myStringHtml.
Что касается вопроса о наилучшем месте для импорта import urllib2, я также не совсем понимаю проблему, но для меня наиболее естественным представляется сделать это следующим образом:
import foo
# then foo.py contains
import urllib2
class foo(object):
myStringHtml = urllib2.urlopen("http://www.google.com").read()