2017.11.13魔法方法

_init__的功能:属性初始化

1、在对象创建的时候,自动调用

self: 当前对象,哪个对象调用这个方法了,self就是这个对象

私有化 其实也是一种封装

不能直接对外访问,通过两个步骤,间接对外访问

1、设置私有化  __属性

2、对外提供可访问的接口(方法)  获取和设置

对象是可变的,传递之后,修改属性了,影响原来的对象

·在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法

·当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据

·所谓的self,可以理解为自己

·可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思

·某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可


如果有一个对象,当需要对其进行修改属性时,有2种方法

·对象名.属性名=数据---->直接修改

·对象名.方法名() ---->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

·将属性定义为私有属性

·添加一个可以调用的方法,供调用


·Python中没有像C++中public和private这些关键字来区别公有属性和私有属性

·它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,102评论 2 16
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 9,201评论 0 27
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 9,666评论 4 16
  • 1,保持目标,不断地改变方法。这种人能把事做成。 2,保持方法,不断地改变目标。这种人估计难成事。 梦里跑了很长的...
    马唐阅读 1,618评论 0 0