Wenn man ein Objekt erstellen würde, dann wäre die `__init__()` hiermit auf die Nase gefallen:
Code: Alles auswählen
File "forum19.py", line 21, in __init__
self.settings_dict['main_call_count': 0]
TypeError: slice indices must be integers or None or have an __index__ method
Grunddatentypen haben nichts in Namen verloren. Den Typen ändert man gar nicht so selten mal während der Programmentwicklung und dann muss man überall im Programm die betroffenen Namen ändern, oder man hat falsche, irreführende Namen im Quelltext.
Zum löschen von Dateien braucht man keine externen Programme, und es ist sicherer wenn man nicht einfach relativ zum aktuellen Arbeitsverzeichnis etwas löscht. Wer weiss wo das am Ende liegt und was da gelöscht wird.
Code: Alles auswählen
#!/usr/bin/env python3
from pathlib import Path
from pprint import pprint
SETTINGS_FILE_PATH = Path(__file__).parent / ".settings.json"
#
# Delete prior to initial testing.
#
try:
SETTINGS_FILE_PATH.unlink()
except FileNotFoundError:
pass
DEFAULT_SETTINGS = {
# system setting
# set to zero if call is 'virgin' call
# is never changed
"main_call_count": 0,
# default user settings
"del_orphaned": False, # if true: del
"demo_only": False, # if true: demo only
"hide_versions": False, # if true: hide
"symlinks_dirs": False, # if false: ignore
"symlinks_files": False, # if false: ignore
}
def main():
pprint(DEFAULT_SETTINGS)
print(DEFAULT_SETTINGS["main_call_count"])
if __name__ == "__main__":
main()