Ho una piccola classe che è la seguente:Verificando una variabile appartiene ad una classe in pitone
class Gender(object):
MALE = 'M'
FEMALE = 'F'
Ho una variabile parametro che può essere solo M o F .To assicurare che è solo che, faccio la seguente:
>>> parameter = 'M'
>>> if parameter not in (Gender.MALE, Gender.FEMALE)
... print "Invalid parameter"
...
Invalid parameter
>>>
Ora ho una classe che contiene tutti gli Stati Uniti come segue:
class States(object):
ALABAMA = 'AL'
ALASKA = 'AK'
ARIZONA = 'AZ'
ARKANSAS = 'AR'
CALIFORNIA = 'CA'
COLORADO = 'CO'
CONNECTICUT = 'CT'
DELAWARE = 'DE'
DISTRICTOFCOLUMBIA = 'DC'
....
....
Come l'esempio di cui sopra, il mio parametro ora è AL .Tuttavia, dato che ci sono 50 stati negli Stati Uniti, non posso usare praticamente l'tupla con 50 variabili come ho usato above.Is c'è un modo migliore di fare questo ? Ho letto di isinstance ma non mi ha dato i risultati attesi.
Se si sta utilizzando Python 3, dare un'occhiata a [enum] (https: //docs.python. org/dev/library/enum.html) –
dovresti usare un [enum] (https://stackoverflow.com/questions/36932/how-can-i-represent-an-enum-in-python) – shx2
E IIRC ci dovrebbe essere una ricetta di Python 2 per le enumerazioni da qualche parte. –