码迷,mamicode.com
首页 > 其他好文 > 详细

day 6 类的属性

时间:2018-01-28 15:32:21      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:direct   sel   属性   word   修改   obj   .property   成功   strong   

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 

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

day 6 类的属性

标签:direct   sel   属性   word   修改   obj   .property   成功   strong   

原文地址:http://blog.51cto.com/13522822/2065979

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!