Я пишу скрипт на Python, и одна из его функций должна заключаться в том, что он автоматически добавляет себя в папку автозагрузки Windows.
Теперь я написал несколько функций, которые бы сделали это для меня, но онивсе полагаются на несколько переменных, которые не должны меняться после первоначального присваивания. Но я не уверен, где их хранить.
Это фрагмент кода:
def write_shortcut():
autostart_folder = winshell.startup()
path = os.path.abspath(__file__)
target_folder = autostart_folder + r"\proxy-changer.lnk"
working_directory = path.replace(r'\proxy-changer.pyw', '')
with winshell.shortcut() as shortcut:
shortcut.path = path
shortcut.working_directory = working_directory
shortcut.description = "Shortcut to the proxy-changer script"
shortcut.write(target_folder)
def del_shortcut():
os.remove(target_folder)
def check_shortcut():
if (config.getboolean('DEFAULT','RunOnStartup') == 1 and not
os.path.islink(target_folder)):
write_shortcut()
elif (config.getboolean('DEFAULT','RunOnStartup') == 0 and
os.path.islink(target_folder)):
del_shortcut()
else:
pass
Строки со 2 по 5 - это переменные, о которых я говорю. В настоящее время они находятся в первой функции, но другие не могут получить к ним доступ. Теперь я знаю, что классы существуют, и переменные внутри класса доступны для всех методов внутри класса, но я не уверен, что это правильный путь, потому что он будет содержать только один объект, а не несколько.
Вне функций, даже до их определения, тоже не выглядит очень чистым. И я не уверен в том, чтобы сделать их глобальными.
Я думаю, что я понимаю классы в целом, но не все, поэтому, если очевидно, что класс будет правильным, тогда извините. Я только что слышал, что классы часто используются, когда они не нужны (Хватит писать классы!) , поэтому я стараюсь избегать той же ошибки. Я новичок в Python, не стесняйтесь критиковать мой стиль кода или скажите, где я ошибаюсь / могу улучшить его.
Заранее спасибо.