Если у вас есть файл, такой как
# file_a.py
import hashlib
def my_func():
...
if salt == ... :
...
if __name__ == '__main__':
salt = hashlib.sha512()
my_func()
тогда он будет работать нормально при вызове python file_a.py
, но средства проверки синтаксиса будут выдавать предупреждения, потому что есть вероятность, что salt
может быть не определено.
Например, если вы создаете другой файл в той же папке, как
# file_b.py
from file_a import my_func()
тогда вы получите salt
, который не будет определен, поскольку часть внутри if __name__ == '__main__':
не будет вызвана, потому что file_a.py
не является "основным" файлом.
если вы хотите определить константу, то вам нужно определить ее снаружи - предпочтительно в верхней части файла:
# file_a.py
import hashlib
SALT = hashlib.sha512()
def my_func():
...
if SALT == ... :
...
if __name__ == '__main__':
my_func()
но, скорее всего, было бы лучше избегать констант и использовать вместо них ключевые аргументы.
Я надеюсь, что это то, что происходит. Если я полностью выключен, тогда я приношу свои извинения, но вам нужно будет предоставить больше кода в этом случае, это очень похожая игра:)