Visa signatur
ecce
#NATisNotASecurityFeature
Jag vill ändra vad += operatorn gör på element i en dict i en specifik klass. När ett värde i en dict uppdateras så finns conditions kring om ett befintligt värde ska uppdateras eller ej, samt OM det uppdateras så måste det ERSÄTTAS, inte konkatineras som Python gör med strängar annars. Jag såg för mig att det funkar såhär typ:
#!/usr/bin/env python
class Host:
def __init__(self) -> None:
apa = {'descr': ''}
h = Host()
h.apa['descr'] = 'First descr'
h.apa['descr'] += 'Second descr'
print(h.apa['descr']). # Printar ut 'Second descr'
Jag tänkte det var enkelt genom att overload'a __iadd__():
#!/usr/bin/env python
class Host:
def __init__(self) -> None:
apa = {'descr': '', 'age': ''}
def __iadd__(self, other):
self.value = str(other) if (self.value == '' or self.value == '-') and (other != '' and other != None) else self.value
return self.value
... men det var ju tankevurpa deluxe, det är inte Hostobjektet jag vill ändra += på utan alla dict som finns i den. Nånstans där fick jag slut på både IQ och googletalang.
ecce
#NATisNotASecurityFeature
Skapa din egen dict objekt typ genom att ärva dict så kan du göra vad du vill med den.
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.