Python类的构造器及继承
2017-11-06 22:19
274 查看
1)类的一般形式
# class ClassName: # '类的帮助信息' #类文档字符串 # class_suite #类体 # 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如People类 # 而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同 # class后面紧接着是类名,即People,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的 # object是所有类的父类,不写便是默认object class People(object): '''this is a new class''' name = 'jack' sex = 'woman' ins = People() #创建实例是通过类名+()实现的 print(type(ins)) print(ins.name) print(ins.sex) ins.age = 30 print(ins.age)
运行结果:
<class '__main__.People'>
jack
woman
30
2)类的构造器
# __init__ 构造函数,在生成对象时调用 # 由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。 # 通过定义一个特殊的__init__方法,在创建实例的时候,就把name,sex等属性绑上去. # 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是self. # 有了__init__的方法后,创建实例的时候,传入参数便不能为空,必须传入与__init__中方法匹配的参数 # 而self代表的是类的实例,该参数不需要另外进行传入 class people2(): def __init__(self,name,sex): self.name = name self.sex = sex def hello(self): print('hello {0}'.format(self.name)) test = people2('fengjin','man') test.hello()
运行结果:
hello fengjin
My name is child
3)类的继承
# 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制 # 继承语法:class 派生类名(基类名)://... 基类名写在括号里,基本类是在类定义的时候,在元组之中指明的 # 在python中继承中的一些特点: # 1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。 # 2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。 # 区别于在类中调用普通函数时并不需要带上self参数 # 3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。 # (先在本类中查找调用的方法,找不到才去基类中找)。 # Python的类支持多继承,python的多继承很简单 # 下面我们来看一下多继承的格式: class A: # 定义类 A pass class B: # 定义类 B pass class C(A, B): # 继承类 A 和 B pass # 多继承其实在需要在父类的位置,直接写多个父类就可以,然后用“,”分开就可以了,C类就同时继承了A类和B类 class parent(): name = 'parent' sex = 'F' def __init__(self): print('My name is {0}'.format(self.name)) def get_name(self): return self.name def get_sex(self): return self.sex class child(parent): name = 'child' sex = 'M' def __init__(self): print('My name is {0}'.format(self.name)) def hello(self): print('hello world') a = child() a.hello() print(a.get_name()) print(a.get_sex())
运行结果:
My name is child
hello world
child
M
相关文章推荐
- Python多重继承的异构构造器
- 四周一次课(11月6日) 8.1 类的一般形式 8.2 python构造器 8.3 类的继承
- Python多重继承的异构构造器
- python--继承和多态
- Python 继承 多态
- Python 学习笔记 - 面向对象(封装,继承和多态)
- Python 的类、继承和多态详解
- 继承机制中的构造器和析构器 - C++快速入门17
- python学习——多重继承
- Python 类的继承
- python中的多继承
- Python 类的定义和实例化,类继承
- 继承object对象对python多继承的影响
- python继承
- 继承的约束:构造器不可调用被覆盖的方法
- python--基础学习(二)判断 、循环、定义函数、继承、调用
- Python 学习笔记 - 面向对象(封装,继承和多态)
- Python类与继承
- Swift 【对构造器自动继承的几点理解】
- 20161028 Python 读书笔记之类、多态、继承、封装