当前位置:   article > 正文

python——第八章面向对象程序设计_python作业八面向对象程序设计

python作业八面向对象程序设计

目录

1.面向对象概念

2.类和实例

3.属性

4.继承和多态

5.设计实例


8.1面向对象程序设计

oo 以对象为中心的思维方式

封装性 :将数据与操作捆绑在一起,创造出一个新的类型,高内聚,低耦合

继承性:子类可以对父类的行为进行扩展、覆盖、重定义,龙生九子

多态性:一个接口形式,多种实现方法

 python是面向对象的高级语言,每一个变量都是一个对象


8.2类和实例

class<类名>:

        <语句块>是属性和方法

  1. class Teacher:
  2. """一个简单的教师类示例"""
  3. profession = 'education'#类的属性
  4. def show_info(self):#类的方法
  5. return 'This is a teacher'
'
运行

python中对于类的属性,可以在外部访问,而对于方法,需要在外部通过实例化才可以调用它的方法

8.2.1属性的引用

类名.属性名      类对象支持属性的引用和实例化两种操作

8.2.2实例化对象

类的实例化,使用的是函数表示法

  1. class Teacher:
  2. """一个简单的教师类示例"""
  3. profession = 'education'#类的属性
  4. def show_info(self):#类的方法
  5. return 'This is a teacher'
  6. teacher_zhang = Teacher()
  7. teacher_wang = Teacher()
  8. print(teacher_zhang.show_info())
  9. print(teacher_wang.show_info())
'
运行


8.3属性

私有属性和公有属性

1.默认为公有属性,所以在类的外部,可以访问所有默认的公有属性

2.如果属性名称以_开始,表明它是一个受保护的变量(尽量不访问,但还是可以访问,还是公有)只是大家约定俗成的当做是私有变量

3.如果属性的名字是以__开始,则表示是私有变量,只有内部可以访问,外部不可以尽行访问

4.没有对私有属性提供一个严格的访问保护机制,可以通过_Teacher__name进行访问私有变量

数据属性

分为属于对象的数据属性和属于类的数据属性两类:

不需要声明,像局部变量一样,在第一次赋值时产生

可以随时添加新的数据属性

方法

分为实例方法,类方法,和静态方法三种:

1.实例方法一般都以self作为第一个参数,代表实例对象自身

self代表类的实例而非例,调用时相当于把实例传进去

2.在定义类方法之前,需要添加@classmethod进行说明,必须以cls作为第一个参数,cls代表类的本身

  1. class ClassTest(object):
  2. __num = 0
  3. @classmethod
  4. def addNum(cls):
  5. cls.__num +=1
  6. @classmethod
  7. def getNum(cls):
  8. return cls.__num
  9. def __new__(self,name):
  10. ClassTest.addNum()
  11. class Student(ClassTest):
  12. def __init__(self,name):
  13. self.name = name
'
运行

实例方法类方法静态方法
对象

内置的特殊方法

__new__()方法用于创建一个类的新实例

__delete__()在实例被销毁时调用

__str__()方法需要返回一个字符串,是对这个对象的描述


8.4继承与多态

继承:

class<类名>(基类名):

        <语句块>

子类继承了父类所有的公有数据属性和方法

python中总是先在本类中查找调用的方法,如果找不到会到基类中寻找

多态:

一个方法名具有多种不同的实现,即不同的功能

鸭子类型:并不依赖查找对象类型,直接调用或使用其方法,关注的不是方法,关注的是它如何使用的。

比如迭代器,是迭代器都可以实现next,不管元组还是列表都可以实现迭代,但是也会出现一些问题

运算符重载:

__add__重载

  1. class Complex:
  2. def __init__(self,real = 0.0,image = 0.0):
  3. self.real = real
  4. self.image = image
  5. def __add__(self, comp):
  6. return Complex(self.real + comp.real,self.image+comp.image)
  7. a = Complex(3.5,1.2)
  8. b = Complex(1.3,0.0)
  9. c = a+b
  10. print(c.real,c.image)
'
运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/827698
推荐阅读
相关标签
  

闽ICP备14008679号