• 成员可见性,变量和方法的可见性。使用“__”开头的变量和方法为私有变量和方法
  • class Student():
    
        def __init__(self, name, age):
    # 构造函数
    # 初始化变量的属性
    self.name = name
    self.age = age
    self.__score = 0 # 这里是私有变量 # def __marking(self, score): # 这里使用__是方法变成私有方法
    def marking(self, score): # 这里使用__是方法变成私有方法
    if 0 <= score <= 100:
    self.__score = score
    else:
    self.__score = 0
    print(self.__score) stu = Student("王", 19)
    # stu.marking(10) # 这里调用出错,因为是私有方法
    stu.marking(10)
    # print(stu.score) # 这里调用出错,因为是私有变量
    stu.__score = 19 # 不报错,原因从下面的代码中,多增加了一个变量'__score': 19
    print(stu.__dict__) # {'name': '王', 'age': 19, '_Student__score': 10, '__score': 19}
    print(stu._Student__score) # python 将私有变量变成_Student__score形式,可以访问

      

  • 继承:`class A(B):`,A继承于B,B是A的父类。支持多继承。
  • class B():
    sums = 0 def __init__(self, name, age):
    self.name = name
    self.age = age def get_name(self):
    print(self.name) class A(B):
    def do_homework(self):
    print("hello!") stu = A("王", 20)
    print(stu.sums)
    print(A.sums)
    print(B.sums)
    print(stu.name) ------------------------------分割线---------------------------------------- class B():
    sums = 0 def __init__(self, name, age):
    self.name = name
    self.age = age def get_name(self):
    print(self.name) class A(B): def __init__(self, school, name, age):
    self.school = school
    # B.__init__(self, name, age) # 这里要传入self,否则报错(形参和实参对应)
    super(A, self).__init__(name, age) # 使用super调用父类的方法,常用 def do_homework(self):
    print("hello!") stu = A("北大", "王", 20)
    print(stu.sums)
    print(A.sums)
    print(B.sums)
    print(stu.name)
    print(stu.school)

      

  • 当子类的方法和父类的方法重名,会调用子类的方法,覆盖父类的方法,可以使用`super(a, self).do_homework()`来调用重名的父类的方法

Python中面向对象的一些关于私有变量和继承的理解的更多相关文章

  1. python中的下划线(私有变量)

    Python用下划线作为变量前缀和后缀指定特殊变量. - "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量:不能用"from xx ...

  2. Python中,如何初始化不同的变量类型为空值

    参考文章  Python中,如何初始化不同的变量类型为空值 常见的数字,字符,很简单,不多解释. 列表List的其值是[x,y,z]的形式 字典Dictionary的值是{x:a, y:b, z:c} ...

  3. Python中面向对象初识到进阶

    面向对象初识到进阶 # 面向对象结构: # class 类名: # def __init__(self,参数1,参数2): # self.对象的属性1 = 参数1 # self.对象的属性2 = 参数 ...

  4. Python中面向对象的概念

    1.语言的分类 1)面向机器 抽象成机器指令,机器容易理解.代表:汇编语言. 2)面向过程 做一件事,排除步骤,第一步做什么,第二步做什么,如果出现A问题,做什么处理,出现b问题,做什么处理.问题规模 ...

  5. Python中面向对象和类

    目录 面向对象 类的定义 类的访问 类的属性和方法 继承和多态 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象: 类(C ...

  6. python 中面向对象的概念

    原文 域和作用空间 本地域,函数域(nonlocal)和 全局域(global) def scope_test(): def do_local(): spam = "local spam&q ...

  7. python中面向对象

    一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...

  8. python中面向对象元类的自定义用法

    面向对象中的常用方法 1.instance 和 issubclass instance :判断两个对象是不是一类 issubclass :判断某个类是不是另一个类的子类 #两个常用方法的使用 clas ...

  9. python 中面向对象编程简单总结2

    1.python中继承的特点: (1)总是从一个类继承,默认为object类 (2)不要忘记调用super.__init__方法来初始化父类的方法 def __init__(self,args): s ...

随机推荐

  1. 4-es6的模块化编程

    诞生背景其他都是第三方库,只有es才是官方正宗的,如果es早就制定的话,也不至于现在的这么百花齐放(混乱)的局面了 核心规范一个文件就是一个模块export是暴露出模块的公开方法import是导入 实 ...

  2. 最值得阅读学习的 10 个 C 语言开源项目代码

    1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连 ...

  3. Django REST Framework 学习笔记

    前言: 基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无 ...

  4. fetch body里数据为ReadableStream 解决办法

    前端工程中发送 HTTP 请求从来都不是一件容易的事,前有骇人的 ActiveXObject ,后有 API 设计十分别扭的 XMLHttpRequest ,甚至这些原生 API 的用法至今仍是很多大 ...

  5. [2012-12-18 14:59:31]AS3 常用正则表达式的总结-不用google了,我帮收集的很多了

    正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了.红色字体为常用正则:下面这个类是我自己写的一个示例,想必大 ...

  6. CF1153E Serval and Snake(交互题)

    题目 CF1153E Serval and Snake 很有意思的一道交互题 做法 我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数 根据这个性质查询每一行每一列,我们大体能知道两端的位 ...

  7. 20145329 《Java程序设计》第七周学习总结

    教材学习内容总结 +JDK出现之前就已经存在的java.util.Date与java.util.Calendar等API +如果想取得系统时间,方法之一是使用System.currentTimeMil ...

  8. linux信号的介绍

    1.基本概念    中断:        中断是系统对于异步事件的响应        中断信号        中断源        现场信息        中断处理程序        中断向量表   ...

  9. CentOS 7配置静态IP地址

    [root@centos1 ~]# ifconfig -bash: ifconfig: command not found 首先,习惯性的输入echo $PATH(查看当前PATH环境变量,跟DOS的 ...

  10. An Overview of Forms Authentication (C#)

    https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/an-o ...