What is the difference between declaring data attributes inside or outside __init__

Posted by user1898540 on Stack Overflow See other posts from Stack Overflow or by user1898540
Published on 2012-12-12T17:00:57Z Indexed on 2012/12/12 17:03 UTC
Read the original article Hit count: 324

Filed under:
|
|

I'm trying to get my head around OOP in Python and I'm a bit confused when it comes to declare variables within a class. Should I declare them inside of the __init__ procedure or outside it? What's the difference?

The following code works just fine:

# Declaring variables within __init__
class MyClass:
    def __init__(self):
        country = ""
        city = ""
    def information(self):
        print "Hi! I'm from %s, (%s)"%(self.city,self.country)

me = MyClass()
me.country = "Spain"
me.city = "Barcelona"
me.information()

But declaring the variables outside of the __init procedure also works:

# Declaring variables outside of __init__
class MyClass:
    country = ""
    city = ""
    def information(self):
        print "Hi! I'm from %s, (%s)"%(self.city,self.country)

me = MyClass()
me.country = "Spain"
me.city = "Barcelona"
me.information()

© Stack Overflow or respective owner

Related posts about python

Related posts about attributes