Gå til innhold

Finnes det en bedre måte for å sette start variabler til et object


Anbefalte innlegg

Skrevet

Slik gjør jeg det nå:

class Klasse:
   def __init__(self, var1, var2, var3, var4):
       self.var1 = var1
       self.var2 = var2
       self.var3 = var3
       self.var4 = var4
t = Klasse(var1, var2, var3, var4)

 

Det må vel finnes en lettere måte å gjøre dette på?

Videoannonse
Annonse
Skrevet

Det går jo alltids an å bruke **kwargs og __dict__ -- hvor pent det er vet jeg ikke helt da...

 

>>> class A(object):
def __init__(self, **kwargs):
	self.__dict__.update(kwargs)
>>> a1 = A()
>>> a2 = A(foo='bar', zot=42)
>>> a2.bar
42

Skrevet

Er vel de to beste metodene å gjøre ting på. Du kan evt gjøre noe slikt da:

class BaseClass:
 def __init__(s, **kwargs)
s.__dict__.update(kwargs)
s.init()
 def init(s):
pass

class MyClass(BaseClass):
 def test(self):
print self.var

class AnotherClass(BaseClass):
 def init(s):
print s.text

MyClass(var="test").test()
AnotherClass(text="What a way")

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...