Мне сложно понять, как следует определять константы в модульном коде (используя модули main.py + 2), здесь в этом примере константы VERBOSE
и SAMPLINGRATE
.
main.py
VERBOSE = True
SAMPLINGRATE = 44100
import numpy
from module1 import Class1
from module2 import Class2
items1 = []
items2 = []
for i in range(100):
items1.append(Class1(i))
items2.append(Class2(i))
module1.py
import numpy
class Class1:
def __init__(self, i):
self.i = i
...
def dosomething(self):
...
if VERBOSE:
print "We did this and this..."
module2.py
import numpy
class Class2:
def __init__(self, i):
self.i = i
...
self.blah = SAMPLINGRATE * i
if VERBOSE:
print "We did this and this..."
Вопрос: Как и где следует определять константы VERBOSE
и SAMPLINGRATE
?
Примечание:
Я не могу передать все эти константы в качестве аргумента при создании экземпляров Class1
, потому что если это так, я должен был бы сделать эту уродливую вещь в main.py
:
for i in range(100):
...Class1(i, verbose=VERBOSE, samplingrate=SAMPLINGRATE, <lotsofconstantshere>))...
Я использую модульную конструкцию, потому что хочу, чтобы module1.py
использовался для других проектов , чем main.py
. Поэтому, если я импортирую module1.py
в другой проект projectB.py
, я бы хотел, чтобы значение по умолчанию для VERBOSE
было False
.