Python类super()及私有属性原理解析


Posted in Python onJune 15, 2020

super()有参数写法:

# 1.定义父类
class A(object):
  def __init__(self):
    self.num = 1
  def info_print(self):
    print(self.num)

class C(A):
  def __init__(self):
    self.num = 2
  def info_print(self):
    print(self.num)
    super(C, self).__init__()
    super(C, self).info_print()
# 2. 定义子类,继承父类

class B(C):
  def __init__(self):
    self.num = 3

  def info_print(self):
    self.__init__()
    print(self.num)

  def print_A(self):
    A.__init__(self)
    A.info_print(self)

  def print_C(self):
    C.__init__(self)
    C.info_print(self)

  def print_AC(self):
    super(B, self).__init__()
    super(B, self).info_print()
b = B()
b.print_AC()

super()用于调用父类的方法

无参写法:

super().__init__()
super().info_print()

使用super()方法可以自动查找父类,查找顺序遵循__mro__类属性的顺序

私有属性与方法

设置私有极限的方法:在属性名和方法名前面加上两个下划线__

设置之后设置的实例属性或实例方法不继承给子类

获取和修改私有属性:

在类中添加函数:

def get_money(self):
  return self.__money
def set_money(self, money):
  self.__money = money

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 时间处理datetime实例
Sep 06 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 Python
星球大战与Python之间的那些事
Jan 07 Python
Python列出一个文件夹及其子目录的所有文件
Jun 30 Python
python自带的http模块详解
Nov 06 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
Python玩转Excel的读写改实例
Feb 22 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Numpy一维线性插值函数的用法
Apr 22 Python
python 进程池pool使用详解
Oct 15 Python
Python趣味挑战之教你用pygame画进度条
May 31 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 #Python
Python StringIO及BytesIO包使用方法解析
Jun 15 #Python
Python smtp邮件发送模块用法教程
Jun 15 #Python
pandas数据处理之绘图的实现
Jun 15 #Python
keras中的loss、optimizer、metrics用法
Jun 15 #Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 #Python
基于python和flask实现http接口过程解析
Jun 15 #Python
You might like
PHP 第二节 数据类型之数值型
2012/04/28 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
Array对象方法参考
2006/10/03 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
python中偏函数partial用法实例分析
2015/07/08 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python 调用钉钉机器人的方法
2019/02/20 Python
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
华为python面试题
2016/05/03 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
测绘工程本科生求职信
2013/10/10 职场文书
员工年终演讲稿
2014/01/03 职场文书
单位委托书范本
2014/04/04 职场文书
教师产假请假条
2014/04/10 职场文书
英文求职信范文
2014/05/23 职场文书
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS
spring boot实现文件上传
2022/08/14 Java/Android