Token nur einmal angeben?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

a) Du kannst ein extra Modul für Konstanten anlegen.

settings.py:

TOKEN = "..."

some_script.py:

import settings

TestBot = bot.startmenu(token=settings.TOKEN)

Wenn der Token dynamisch ermittelt wird, könntest du die settings.py etwas umschreiben:

def initialize(token):
  global TOKEN
  TOKEN = token

und die Definition zu Programmstart durchführen.

import settings

token = # get token ...
settings.initialize(token)

b) Die Methoden, die den Token benötigen, lassen sich sicherlich ebenso in einer Klasse bündeln. Zu Programmstart erstellst du eine Instanz dieser Klasse und teilst diese (wie oben) global.

some_handler.py:

class SomeHandler:
  def __init__(self):
    self.token = # get token ...

  def do_something_with_token():
    # ...

  def do_something_else_with_token():
    # ...

HANDLER = SomeHandler()

some_script.py:

from some_handler import HANDLER

HANDLER.do_something_with_token()
HANDLER.do_something_else_with_token()
import os
from dotenv import load_dotenv

load_dotenv()

BOT_TOKEN = os.getenv('BOT_TOKEN')
TestBot = bot.startmenu(token=BOT_TOKEN)

Und dann in der .env Datei:

BOT_TOKEN="..."
Woher ich das weiß:Hobby – Entwickle seit ca 5 J. Software in vers. Programmiersprachen
Nxchthimmel 
Fragesteller
 12.12.2023, 07:12

Tut mir leid, das meine ich nicht. Ich möchte den Token unabhängig von dem Modulen übergeben, aber das man es nur an einem bestimmten Modul senden muss. Quasi das du den Token nicht doppelt und dreifach an jedes neue Modul übergeben musst.

0