How do these 2 classes differ?
class A(): x=3 class B(): def __init__(self): self.x=3
Is there any significant difference?
A.x
is a class variable. B
's self.x
is an instance variable.
i.e. A
's x
is shared between instances.
It would be easier to demonstrate the difference with something that can be modified like a list:
#!/usr/bin/env python class A: x = [] def add(self): self.x.append(1) class B: def __init__(self): self.x = [] def add(self): self.x.append(1) x = A() y = A() x.add() y.add() print("A's x:", x.x) x = B() y = B() x.add() y.add() print("B's x:", x.x)
Output
A's x: [1, 1] B's x: [1]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With