0
0 Комментариев

Как в классе подключаемого модуля получить доступ к переменной и модулям основной программы? Например, основной файл:

# <main.py>
PYTHON_VERSION = 3
if PYTHON_VERSION == 3:
    from urllib.parse import urlencode, quote  # python 3
else:
    from urllib import urlencode, quote  # python 2.7
import mymodule

Класс в модуле mymodule не видит ни глобальной переменной PYTHON_VERSION:

# <mymodule.py>
class works:
    global PYTHON_VERSION
 
    def get_html(self):
        print (PYTHON_VERSION)
        # ошибка: name 'PYTHON_VERSION' is not defined

ни quote из urllib:

# <mymodule.py>
class works:
    PYTHON_VERSION = 3
    # ...
 
    def get_html(self):
        if self.PYTHON_VERSION == 3:
            url = self.URLhtml + quote(self.title)  # python 3
        else:
            url = self.URLhtml + self.title.encode('utf-8')  # python 2.7
        # ошибка: name 'quote' is not defined

В одном файле, без выноса в модуль и классы, просто функциями, всё работало.


Добавить комментарий