Portál AbcLinuxu, 12. května 2025 08:07
Řešení dotazu:
x = "foo/bar/baz/qux".split("/") print x[0] # Vypíše 'foo' print x[-1] # Vypíše 'qux'
if 'Var' in locals(): # Var exists. if 'Var' in globals(): # Var exists. if hasattr(obj, 'attr_name'): # obj.attr_name exists.ale potřebuji testovat proměnnou 'self.Var'. Díky
if hasattr(self, "var"):
)
hasattr(self, "var"): # var existuje else: # var neexistujekdyž ta proměnná existuje nebo nexistuje tak podmínka funguje ok. pokud ale existuje a já ji smažu, tak jako by pořád existovala. Proměnnou mažu pomocí self.var = None, jelikož nic jiného jsem nenašel. Díky
if self.var: # ... else: # ...a pak to tvoje nulování pomocí
self.var = None
bude fungovat.
hasattr
, jak bylo řečeno výše, ale upřímně z hlavy nevím, jak atribut odebrat. Nikdy jsem to nepotřeboval. Jaký pro to máš use-case?
del self.var
if ! hasattr(self, "var"): # var neexistuje
del
nic netestuje, del
maze atribut. Takze kdyz to pouzijes podruhy tak to nahlasi chybu, protoze ten atribut uz tam neni.
negace se dela pomoci "not":
if not hasattr(self, "var"):
Jinak veci jako mazani atributu bych doporucil jenom pokud vis co delas. Z tech otazek mam dojem ze to tak neni a na 99% existuje lepsi reseni bez toho...
To neni mysleny jako urazka, ale proste je potreba zacit se zakladama, nez prejdes ke slozitejsim vecem.
Doporucil bych taky kdyz se na neco ptas tak napsat co se celkove snazis udelat, ne jenom krok na kterym ses zaseknul. Casto se stane ze se clovek pri reseni problemu zasekne na nejakym kroku, a vubec ho nenapadne ze cela ta cesta kterou na to jde je spatne. Kdyz zvolis jinou cestu, tak ten krok najednou vubec nebude potreba. To ti ale nemuzeme rict kdyz nevime co se celkove snazis udelat...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.