赞
踩
目录
1.面向对象概念
2.类和实例
3.属性
4.继承和多态
5.设计实例
8.1面向对象程序设计
oo 以对象为中心的思维方式
封装性 :将数据与操作捆绑在一起,创造出一个新的类型,高内聚,低耦合
继承性:子类可以对父类的行为进行扩展、覆盖、重定义,龙生九子
多态性:一个接口形式,多种实现方法
python是面向对象的高级语言,每一个变量都是一个对象
8.2类和实例
class<类名>:
<语句块>是属性和方法
- class Teacher:
- """一个简单的教师类示例"""
- profession = 'education'#类的属性
-
- def show_info(self):#类的方法
- return 'This is a teacher'
'运行
python中对于类的属性,可以在外部访问,而对于方法,需要在外部通过实例化才可以调用它的方法
8.2.1属性的引用
类名.属性名 类对象支持属性的引用和实例化两种操作
8.2.2实例化对象
类的实例化,使用的是函数表示法
- class Teacher:
- """一个简单的教师类示例"""
- profession = 'education'#类的属性
-
- def show_info(self):#类的方法
- return 'This is a teacher'
-
- teacher_zhang = Teacher()
- teacher_wang = Teacher()
- print(teacher_zhang.show_info())
- print(teacher_wang.show_info())
'运行
8.3属性
私有属性和公有属性
1.默认为公有属性,所以在类的外部,可以访问所有默认的公有属性
2.如果属性名称以_开始,表明它是一个受保护的变量(尽量不访问,但还是可以访问,还是公有)只是大家约定俗成的当做是私有变量
3.如果属性的名字是以__开始,则表示是私有变量,只有内部可以访问,外部不可以尽行访问
4.没有对私有属性提供一个严格的访问保护机制,可以通过_Teacher__name进行访问私有变量
数据属性
分为属于对象的数据属性和属于类的数据属性两类:
不需要声明,像局部变量一样,在第一次赋值时产生
可以随时添加新的数据属性
方法
分为实例方法,类方法,和静态方法三种:
1.实例方法一般都以self作为第一个参数,代表实例对象自身
self代表类的实例而非例,调用时相当于把实例传进去
2.在定义类方法之前,需要添加@classmethod进行说明,必须以cls作为第一个参数,cls代表类的本身
- class ClassTest(object):
- __num = 0
- @classmethod
- def addNum(cls):
- cls.__num +=1
-
- @classmethod
- def getNum(cls):
- return cls.__num
-
- def __new__(self,name):
- ClassTest.addNum()
-
- class Student(ClassTest):
- def __init__(self,name):
- self.name = name
'运行
实例方法 | 类方法 | 静态方法 | |
类 | √ | √ | |
对象 | √ | √ | √ |
内置的特殊方法
__new__()方法用于创建一个类的新实例
__delete__()在实例被销毁时调用
__str__()方法需要返回一个字符串,是对这个对象的描述
8.4继承与多态
继承:
class<类名>(基类名):
<语句块>
子类继承了父类所有的公有数据属性和方法
python中总是先在本类中查找调用的方法,如果找不到会到基类中寻找
多态:
一个方法名具有多种不同的实现,即不同的功能
鸭子类型:并不依赖查找对象类型,直接调用或使用其方法,关注的不是方法,关注的是它如何使用的。
比如迭代器,是迭代器都可以实现next,不管元组还是列表都可以实现迭代,但是也会出现一些问题
运算符重载:
__add__重载
- class Complex:
- def __init__(self,real = 0.0,image = 0.0):
- self.real = real
- self.image = image
-
- def __add__(self, comp):
- return Complex(self.real + comp.real,self.image+comp.image)
- a = Complex(3.5,1.2)
- b = Complex(1.3,0.0)
- c = a+b
- print(c.real,c.image)
'运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。