Python学习_10 类
2018-04-19
1、定义:
类(Class):
用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
class StudentName(object):
pass
2、类里边一般由很多函数组成,函数的第一个参数默认都是self;如果需要全局变量,就在类的内部直接定义
3、类的内部在调用函数或者调用变量的时候,必须使用self变量,或者self函数
self代表的是类实例化以后的个体
4、类的实例化
studentname = StudentName()
5、类的构造器
就是类在初始化的时候,首先必须要执行的函数
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\19 0019 22:02
# @Author : xiexiaolong
# @File : demon3.py
class A(object):
def __init__(self, name):
self.name = name
print("init class A")
def hello(self):
print("hello {0}".format(self.name))
a = A("xxl")
a.hello()
结果:
D:\python\venv\Scripts\python.exe D:/python/第九课类/demon3.py
init class A
hello xxl
Process finished with exit code 0
分析:首先定义一个类,
函数 def __init__(self, name): 部分就是类的构造器;a = A("xxl") 就是实例化类;a.hello() 是调用函数hello()
6、类的继承、重写、调用
继承:
继承完全可以理解成类之间的类型和子类型关系。
重写:
如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法
调用:先去找子类中的方法,如果子类中找不到对应的方法,就去父类中找
多继承:如果父类中都有该方法,那么先继承谁,就用谁的方法
例子:创建一个动物类、鸟类、猫类:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\19 0019 22:02
# @Author : xiexiaolong
# @File : demon3.py
class Animal(object):
def __init__(self,name):
print("正在初始化一个Animal")
def run(self):
print("Animal can run")
class Bird(Animal):
def __init__(self):
print("bird")
def fly(self):
print("Bird can fly")
class Cat(Animal):
def __init__(self, name, sex):
self.name = name
self.sex = sex
super(Cat, self).__init__(self.name)
print("我是一只猫")
def jiao(self):
print("miao miao miao")
def run(self):
print("我是一只猫,我会跑")
class BianYi(Cat, Bird):
pass
cat = Cat("mao","man")
结果:
D:\python\venv\Scripts\python.exe D:/python/第九课类/demon3.py
正在初始化一个Animal
我是一只猫
Process finished with exit code 0
分析:
1、首先创建父类Animal(), 有run()函数;
2、再创建子类Bird(),有fly()函数,他还继承了父类Animal的fly()方法;
3、再创建子类Cat(),继承了父类的run()方法,但是他自己重写的run()方法,当调用run()的时候先调自己的;
super方法直接去调父类,所以结果显示调用父类、然后子类