我有一個枚舉類站。(我正在使用 aenum,一個“擴展”python 枚舉的庫,並允許使用具有整數和字符串的枚舉)這個類 Station)存儲常量,帶有數字和字符串表示。一切都很好。
現在,我想存儲 Station 對象的常量列表。我正在做的事情有效,但感覺不對。(我對 python / 編程有點陌生。)有人對此有什麼建議嗎?謝謝你。
這是我的代碼:
from typing import List
from aenum import Enum
from abc import ABC
class Station(Enum):
_init_ = 'value string'
BASTILLE = 3, 'Bastille'
LEDRU = 1, 'Ledru Rollin'
REPU = 10, 'République'
CHATELET = 2, 'Châtelet les Halles'
OURCQ = 5, 'Ourcq'
def __str__(self):
return self.string
@property
def nb(self):
return self.value
class StationEnsemble(ABC):
name :str
stations : List[Station]
@property
def station_nbs_list(self):
return [st.nb for st in self.stations]
class RecentStations(StationEnsemble):
stations = [Station.OURCQ,Station.LEDRU,Station.CHATELET]
class EastStations(StationEnsemble):
stations=[Station.BASTILLE,Station.OURCQ,Station.CHATELET]
為您的列表使用多個類似乎很尷尬。為什麼不只編寫一個類並將特定列表作為其實例?這將使property
工作(因為它需要在實例上查找)也讓您有機會填寫name
您鍵入的提示但從未初始化的屬性。
class StationEnsemble:
def __init__(self, name: str, stations: List[Station]):
self.name = name
self.stations = stations
@property
def station_nbs_list(self):
return [st.nb for st in self.stations]
RecentStations = StationsEnsemble("recent", [Station.OURCQ, Station.LEDRU, Station.CHATELET])
EastStations = StationsEnsemble("east", [Station.BASTILLE, Station.OURCQ, Station.CHATELET])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句