Гм ... ваш аргумент по умолчанию для get_namespace_length
равен database
, не определен в вашем фрагменте кода, также вы переключаетесь с вызова testing
на test
(я предполагаю, что это была одна из многих опечаток).
Короче говоря, я считаю, что это связано с тем, как байт-код компилируется в python.Аргументы «предварительно загружены», и поэтому изменение переменной (например, пространства имен) не включается в компиляцию get_namespace_length
.Если я правильно помню, после import
весь код импортируемого файла компилируется и выполняется (попробуйте добавить оператор print()
в конце test.py, чтобы увидеть)
Так что вы действительно хотитедля получения длины 4 измените testing.py на:
namespace = "original"
def print_namespace():
print ("Namespace is", namespace)
def get_namespace_length():
_str = namespace
print(len(_str))
или просто print(len(namespace))
.Надеюсь, это поможет!