Python关于类的运用解析

命名

在命名python类的时候还是使用class关键字来命名。

python类分为两种:经典类(旧类),新式类

这两种类在多重继承上有着不同的特性,在后面会有详解。

默认方法



自定义方法


属性/成员(Attributes)



Python把以两个或以上下划线字符开头且没有以两个或以上下划线结尾的变量当作私有变量

私有变量会在代码生成之前被转换为长格式(变为公有)。转换机制是这样的:在变量前端插入类名,再在前端加入一个下划线字符。这就是所谓的私有变量轧压(Private name mangling)

一、Python中默认的成员函数、成员变量都是公开的(public),而且python中没有类似public、private等关键词来修饰成员函数,成员变量。

在python中定义私有变量只需要在变量名或函数名前加上 "__" (两个下划线),那么这个函数或变量就会成为私有的了。

在内部,python使用一种 name mangling 技术,将__membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。

命名混淆意在给出一个在类中定义"私有"实例变量和方法的简单途径,避免派生类的实例变量定义产生问题,或者与外界代码中的变量搞混。

要注意的是混淆规则主要目的在于避免意外错误,被认作为私有的变量仍然有可能被访问或修改(使用_classname__membername),在特定的场合它也是有用的,比如调试的时候


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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,774评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 距离中考还剩十天左右,这时候,语文这科可以分成四块: 1.字、词、病句; 2.课内古诗文; 3.课外现代文阅读; ...
    曾晨风阅读 365评论 0 1
  • 几个短篇小故事,新年这天分享给大家,希望大家能有个幸福美满的一年,忠诚祝愿你们的爱能美好! 日记本 他鼓起勇气,叫...
    摩轩阅读 434评论 4 6