Piszę aplikację kolby, i znalazłem, że mam mnóstwo ogólnych funkcji użytkowych.Python - Najlepsze miejsce do ogólnych funkcji
Oto przykłady rodzajów funkcji, które uważam za ogólne funkcje użytkowe:
def make_hash():
return defaultdict(make_hash)
def file_read(filename):
with open(file_name_, 'r') as f:
return f.read()
def file_write(filename, data):
with open(filename, 'w') as f:
f.write(data)
Myślałam o podrzucając te funkcje w osobnym module razem. Jednak jestem ciekawy, czy mam następujące obawy:
- Istnieje kilka unikalnych funkcji, które gwarantują oddzielny moduł razem. tj. powyższe funkcje file_read i file_write mogą zostać umieszczone w module file.py, jednak ze względu na dwie funkcje czuję, że może to być przesada.
- W mojej aplikacji używam tych funkcji 2-3 razy na funkcję, więc poruszam się pod pozorem, że tworzenie tych funkcji użyteczności powinno pomóc mi zapisać pewne linie kodu, i mam nadzieję, że sprawi, że będę bardziej wydajny.
Pytanie: - Jaki byłby pytoniczny sposób grupowania ogólnych funkcji użytkowych? Czy powinienem utworzyć osobny moduł? Ciekawe, co robią inni, aby zorganizować ten rodzaj kodu.
Ma to sens. Byłem niechętny, aby umieścić to w klasie tylko dlatego, że mam (być może niepoprawne) z góry pomyślane pojęcie tylko tworzenia klas dla konkretnych elementów aplikacji. Jednak myślę, że zamierzam stworzyć hybrydę, korzystając z rozwiązania, które podałeś powyżej .. tj. Pakietu narzędziowego z modułem plików/słownika. Podana powyżej grupa wydaje mi się dobra i, jak pan stwierdził, mogę rozwijać te moduły w miarę wykonywania bardziej ogólnych funkcji i mogę je przenosić. Poza tym najprawdopodobniej uczynię je niezależnymi od aplikacji. Dzięki za opinie. – user2152283
Dlaczego "classes" i "static_methods"? Python nie jest Javą, kiedy wszystko czego potrzebujesz, to funkcja, a następnie za pomocą wszelkich funkcji użyj funkcji. –
@ user2152283 Tak, najlepiej uniezależnić aplikacje od aplikacji, oszczędzając pracy dla każdego przyszłego projektu, w którym używasz stworzonej funkcjonalności. –