PEP 354: Enumerations in Python

Felipe Almeida Lessa felipe.lessa at gmail.com
Mon Feb 27 04:58:08 EST 2006


Em Seg, 2006-02-27 às 00:43 -0800, Paul Rubin escreveu:
>     def print_members(header, e):  # print header, then members of enum e
>       print header
>       for m in e:
>         print '\t', str(m)
> 
>     months_longer_than_february = enum('jan', 'mar', 'apr', ) # etc
>     months_shorter_than_february = enum()
> 
>     print_members('shorter:', months_shorter_than_february)
>     print_members('longer:', months_longer_than_february)

IMHO, you should be using sets, not enums. Something like:

def print_members(header, e):
	print header
	from m in e:
		print '\t', str(e)

months = enum('jan', 'fev', 'mar' ...)
months_longer_than_february = frozenset(months.jan, months.mar,
months.apr ...)
months_shorter_than_february = frozenset()

print_members('shorter:', months_shorter_than_february)
print_members('longer:', months_longer_than_february)

-- 
"Quem excele em empregar a força militar subjulga os exércitos dos
outros povos sem travar batalha, toma cidades fortificadas dos outros
povos sem as atacar e destrói os estados dos outros povos sem lutas
prolongadas. Deve lutar sob o Céu com o propósito primordial da
'preservação'. Desse modo suas armas não se embotarão, e os ganhos
poderão ser preservados. Essa é a estratégia para planejar ofensivas."

  -- Sun Tzu, em "A arte da guerra"




More information about the Python-list mailing list