http://www.cnblogs.com/wupeiqi/p/4766801.html
python3 has no new type class
1:实例属性:

    最好在init(self,...)中初始化

    内部调用时都需要加上self.

    外部调用时用instancename.propertyname

  2:类属性(公有属性):

    在init()外初始化

    在内部用classname.类属性名调用

    外部既可以用classname.类属性名又可以用instancename.类属性名来调用

如果创建实例的时候实例里没有这个属性而公有属性里有,则会链接调用类属性,否则会调用实例自己的属性。

class Test(object):
    name = 'hello word'

a = Test()
print Test.name  # 通过类进行访问
print a.name    # 通过实例进行访问
我们发现都是可以访问的。

但是,如果我们试图修改这个属性的话:

class Test(object):
    name = 'hello word'

a = Test()
Test.name = 'python good'   # 通过类进行修改
print Test.name
print a.name
我们发现两者都修改成功了。

如果通过实例来修改属性的话:

class Test(object):
    name = 'hello word'

a = Test()
a.name = 'python good'  # 通过实例进行修改
print Test.name
print a.name
Test.name没有修改 成功
a.name成功修改

  3:私有属性:

    1):单下划线_开头:只是告诉别人这是私有属性,外部依然可以访问更改

    2):双下划线__开头:外部不可通过instancename.propertyname来访问或者更改

      实际将其转化为了_classname__propertyname

            class Flylove:

  price = 123
  def __init__(self):

    self.__direction = 'go beijing .'
    zIng = 'wait car,many person'

if __name__ == '__main__':
  print Flylove.price
  fly = Flylove() 

  print fly._Flylove__direction 

上面代码是直接访问私有属性的强制措施