Tous les tutoriels que j'voir en ligne montrent comment créer des classes avec __init__
les méthodes constructeur de sorte qu'on peut déclarer des objets de ce type, ou des instances de cette classe.
Comment puis-je créer une classe (statique en Java) afin que je puisse accéder à toutes les méthodes et attributs de la classe sans avoir à créer de nouvelles instances/objets?
Par exemple:
class World:
allElems = []
def addElem(x):
allElems.append(x)
World.addElem(6)
print(World.allElems)
MODIFIER
class World(object):
allAirports = []
@staticmethod
def initialize():
f = open(os.path.expanduser("~/Desktop/1000airports.csv"))
file_reader = csv.reader(f)
for col in file_reader:
allAirports.append(Airport(col[0],col[2],col[3]))
d'erreur: nom de "allAirports" n'est pas défini
- Pourquoi voulez-vous qu'une classe statique? Que voulez-vous atteindre? - voir aussi: stackoverflow.com/q/10388127/562769
- essayez -
World.allAirports.append(....
. - Ne pas le faire. Je ne sais pas ce que Java a fait à votre pauvre âme, mais cela ne peut que mal se terminer.
allAirports
n'est pas seulement une transgression de la PEP 8, mais - *gasp!* - une mutable mondiale. Tout ce que vous voulez réaliser, vous êtes en essayant d'atteindre le mauvais sens. - Aussi, l'utilisation
with
pour les fichiers. - Valide les cas d'utilisation pour des cours réguliers, pour les classes statiques et nu fonctions.