Python--day14 python的类2
来源:互联网 发布:来钱快软件 编辑:程序博客网 时间:2024/06/05 18:22
1、类的重写
通过继承我们可以得到父类的各种属性或者功能,但是需要注意的是父类的__init__函数不会在继承的时候被执行; 并且如果我们想重定义父类中的某个函数,该怎么办呢?
- 使用super函数来执行父类中的__init__函数
- 直接编写同名函数,覆盖父类函数,因为查找方式是先从子类中查找,子类中没有,才会去父类中查找。
class People(object): def __init__(self,name,age): self.name = name self.age = age def test(self): print('{0} testing !'.format(self.name)) class ren(People): def __init__(self,name,age,sex): super(ren, self).__init__(name,age) # 使用super执行父类的__init__方法,并且传递name,age 给父类的init函数 self.sex = sex def get_name(self): return self.name def get_age(self): return self.age def get_sex(self): return self.sex def test(self): # 如果存在和父类同名的函数,会直接覆盖父类函数 print('hello world') a = ren('xpgong',27,'men')print(a.get_name())print(a.get_age())print(a.get_sex())a.test()
2、类的私有属性和私有方法
class People(object): def __init__(self,name,age): self.name = name self.age = age def test(self): print('{0} testing !'.format(self.name)) class ren(People): def __init__(self,name,age,sex): super(ren, self).__init__(name,age) # 使用super执行父类的__init__方法,并且传递name,age 给父类的init函数 self.sex = sex def get_name(self): return self.name def get_age(self): return self.age def get_sex(self): return self.sex def test(self): # 如果存在和父类同名的函数,会直接覆盖父类函数 print('hello world') a = ren('xpgong',27,'men')print(a.get_name())print(a.get_age())print(a.get_sex())a.test()
类的属性,可以称为成员变量,类的方法,可以称为成员函数。
创建对象的过程称之为实例化:当一个对象被创建后,包含三个方面的特性:对象句柄、属性和方法。
创建对象的过程称之为实例化:当一个对象被创建后,包含三个方面的特性:对象句柄、属性和方法。
1、句柄用于区分不同的对象(实例化出来的对象的名称可以称之为句柄)
2、对象的属性和方法与类中的成员变量和成员函数对应
2、对象的属性和方法与类中的成员变量和成员函数对应
obj = myclass() # 创建类的一个实例(对象)# 通过对象来调用方法和属性类的属性按照使用范围分为共有属性和私有属性,类的属性范围取决于属性的名称。
- 共有属性:在类中和类外都能调用的属性
- 私有属性:不能在类外调用的属性
定义方式:以'__'双下滑线开始的成员变量就是私有属性
- 可以通过instance._classname__attribute方式访问
- 内置属性:由系统在定义类的时候默认添加的,又前后双下划线构成,(__dict__,__module__)
class People(object): color = 'yellow' __age = 30 def say(self): self.color = 'back' print self.color print self.__age ren = People()ren.say()ren.color = 'white' # 通过实例化的对象,我们就可以去修改对象的属性,但是不会影响类的成员属性ren.__dict__People.__dict__ # __dict__内置函数,通过对象调用它,会把成员函数中的变量,以字典的形式存储,如果通过类调用它,它会列出类中的所有运行过程中产生的变量,并且以字典存储。ren.__age # 由于__age是内部变量 ,所以无法在class外部调用,我们一般把类的私有属性,在类的成员函数中调用,这样我们就可以在外部来调用类的成员函数来调用内部变量,或者使用ren._People__age注意类的名字前要加_,一般只在测试用!
阅读全文
0 0
- Python--day14 python的类2
- Python-day14
- python day14 python 反射
- day14 python css 漂浮的学习
- day14 python json的loads 和dumps
- Python day14 模块的内置变量
- day14 Python css边距
- day14 Python Css漂浮
- day14 Python Css对话框
- day14 python logging复习
- Python day14 logger复习
- python day14(20170310 )
- DAY14 PYTHON 数据类型 字符串
- day14 python Css中的display
- day14 Python css Positon relative
- day14 Python format字符串格式化
- python自动化之路-day14
- day14 Python css positon学习 之 fixed
- 面试涉及的网络基础
- iSCSI 与 ceph
- 三阶中心距 四阶中心距
- vue-hello-world
- Clustering聚类
- Python--day14 python的类2
- spring记录日志
- 浅谈Java泛型中的extends和super关键字(转)
- Springboot 实现 Restful 服务,基于 HTTP / JSON 传输
- 浮点数
- Jquery实现鼠标可拖动的进度条
- vue-component
- Java 多线程(一)
- spring-boot初学者:记一次搭建web项目404的错误排查过程