abixadamj / pyInteligentneMiasto

Biblioteka (klasa) do produktu Inteligentne Miasto (http://cyfrowaszkola.waw.pl/inteligentne_miasto.html)
GNU General Public License v3.0
1 stars 1 forks source link

Uwagi do kodu od początkującego kodera w Pythonie #3

Open wrata opened 7 years ago

wrata commented 7 years ago

W pliku pyInteligentneMiasto.py linie z ważnymi definicjami (wiersze od 30 do 37) są zbędne, bo te definicje nie są w dalszej części kodu wykorzystywane: NIC = 0 LAMPA = 1 CZUJNIK = 2 ZAPORA = 3 SYGN_KOLEJOWY = 4 SYGN_PIESZYCH = 5 SYGN_DROGOWY = 6 Lista w wierszach od 53 do 61 powinna mieć inną kolejność elementów: self.DefDevicesNames = [ 'Not implemented ;-) Yet.... ', 'Lampa uliczna', 'Czujnik przejazdu', 'Zapora kolejowa', 'Sygnalizator kolejowy', 'Sygnalizator dla pieszych', 'Sygnalizator drogowy'
] i wtedy nazwy wykrywanych urządzeń będą poprawne. W definicji funkcji device_detect (wiersze od 94 do 138) należy wprowadzić dwie zmiany (wiersze 120 do 124): elif a <= 600: # lampa uliczna (lub pusty port!) device_type.add(1) else: # nieznane urządzenie lub pusty port device_type.add(0)

Czy nazwa pliku nie musi być zgodna z nazwą klasy? Skuteczność ww. uwag sprawdziłem praktycznie dokonując modyfikacji kodu i budując przykład dla sygnalizatora drogowego.

abixadamj commented 7 years ago

Przede wszystkim: https://www.python.org/dev/peps/pep-0008/#naming-conventions Co prawda zgodnie z nim to muszę zmienić trochę...

Co do reszty, to wiem od dawna, że pisanie kodu na sucho w PKP nie przynosi rewelacyjnych efektów, ale wciąż nie mam wiele czasu (czyli wcale) aby sie za to porządnie zabrać.

Zmienne maja być, bo będę je wykorzystywał, tzn. przerobie kod, aby pokazać MAGIC_NUMBERS.

Znowu - nie wiem kiedy.

PigNatovsky commented 7 years ago

Co do nazwy pliku i nazwy klasy: nazwy absolutnie nie muszą być takie same. Nazwa modułu może być dowolna- z modułu można tez importować dowolne elementy (definicje stałych, funkcje, klasy itd.). Cały projekt można potraktować jako paczkę (package), a nie moduł. Polecam lekturę: https://docs.python.org/2/tutorial/modules.html