2015-03-08 5 views
3

Есть ли способ сделать неявный инициализатор для модулей (а не пакетов)? Что-то вроде:python module __init__ function

#file: mymodule.py 
def __init__(val): 
    global value 
    value = 5 

И когда вы импортировать его:

#file: mainmodule.py 
import mymodule(5) 
+1

код помещен в «корень» модуля (не в функции) будет работать на импорт. – jedwards

+0

Зачем вам это нужно? Глобальные переменные обычно представляют собой плохую идею. –

+0

Я не могу поместить код вне функции, потому что мне нужно получить аргументы. В принципе, я хочу, чтобы в модуле была глобальная переменная, которую используют все методы, и она будет передана при инициализации модуля. – TulkinRB

ответ

3

import оператор использует builtin __import__ function.
Поэтому невозможно иметь модуль __init__.

Вы должны будете звонить сами:

import mymodule 
mymodule.__init__(5)