Python OOP

0

Cześć,
z wykształcenia nie mam żadnego związku z IT, w programowaniu jestem samoukiem i programuje głównie automatyzacje w pythonie, VBA itp. w sposób proceduralny. Staram się zmienić kod na obiektowy lub coś co go przypomina, obecnie mam zagwostke czy w pythonie da się zrobić coś takiego:

Mam 3 pliki - main.py, program.py i questions.py
main.py

from program.py import Prg
def application()
prg = Prg()

if __name__ == '__main__':
    application()

program.py

#!/usr/bin/env python3
class Prg:
    def __init__(self):
        # Modes
        self.mode = None
        self.mode2 = None

questions.py

#!/usr/bin/env python3
from __future__ import print_function, unicode_literals
from PyInquirer import prompt
import keys
from program import Prg


class Questions:

    @staticmethod
    def set_mode():
        question_list = [
            {
                'type': 'list',
                'name': 'mode',
                'message': 'Please select mode',
                'choices': ["A", "B", "C"],
            }
        ]
        return prompt(question_list).get('mode')

W questions.py będę miał np 20 pytan i chce je pogrupować, pytanie czy tu da sie jakoś zrobić tak

class QuestionSets:
	def initial()
		prg.mode = set_mode()
		prg.mode2 = set_mode2()

@ Edit
Zapomniałem dodać, że nie używając zmiennej global

0

Staram się zmienić kod na obiektowy lub coś co go przypomina

Próbujesz pisać OOP nie rozumiejąc podstawowych założeń - to źle się skończy.

W tym przypadku wiele wskazuje na to, że użycie OOP to przerost formy nad treścią.

Jeśli nie masz nie wiadomo ile doświadczenia to kieruj się minimalizmem / prostotą - tak trudniej jest zbłądzić.

W questions.py będę miał np 20 pytan i chce je pogrupować

Spróbuję podpowiedzieć, ale pierw opisz dlaczego potrzebujesz takiej zmiany. Jaki pożytek wynika z posiadania grup? Komu one bardziej służą? Jak grupy wpływają na logikę związaną ze zbieraniem odpowiedzi?

0

Jakieś podstawowe założenia rozumiem, jednak jestem zwolennikiem nauki poprzez robienie czegoś co jest Ci przydatne

Kod obecnie jest w 3 plikach, z czego w 1 pliku jest ponad 8k linijek kodu i zmienne przetwarzam przez global, chciałbym móc wszystkie lub wiekszośc zmiennych podpiąć pod 1 klasę główną np. prg.mode = 'ABC itp., i być w stanie modyfikować te zmienne innymi funkcjami ew. metodami

0

Nawet jeśli spakujesz całość do jednej klasy to ona nie da Ci żadnych benefitów ponad to co teraz masz ze zmiennymi globalnymi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1