您现在的位置是:首页 > 文章详情

Python零基础学习笔记(四十一)—— 面向对象编程思想

日期:2019-01-31点击:368

面向对象三大特点

             封装、继承、多态

封装

       在python中,封装就是将有相同属性和功能的事物归纳好之后放在同一个类(class)中

       优点:简化代码、便于日后修改和维护

下面定义一个人类作为例子:

       里面包含了对象的初始化(构造函数),变量的访问限制(共有变量和私有变量)

class Person(object): def __init__(self, name, age, money, height): self.__name__ = name #特殊变量,可以直接访问 self.age = age #普通变量 self.__money = money #私有变量,不能直接访问 self._height = height #可以直接访问,但是请视为私有变量,尽量不要直接访问 def show(self): print("My name is %s, I am %d years old. I have %d $$."%(self.__name__, self.age, self.__money)) def setMoney(self, money): if money < 0: pass else: self.__money = money def getMoney(self): return self.money per = Person("Jjking", 23, 50, 60) per.show() per.money = 200 per.age = 24 per.show() per.__money = 200 print(per.__money) per.setMoney(200) per.show() print(per.getMoney()) #动态数据语言的体现,在执行过程中可以添加属性 per.a = 34 print(per.a)

执行结果:

74f236d980552123530920b6fa87972d3a8db705
继承:

       子类继承父类的属性,父类有的功能和属性(私有除外),子类都可以用

下面是例子:

      因为父类是Animal类,定义了eat的行为,子类是Cat类继承了Animal的eat的行为,所以在创建一个cat的对象的时候,这个对象就直接有了cat的行为,因此执行结果就是小白eat

class Animal(object): def __init__(self, namne): self.name = namne def eat(self): print(self.name + "eat") class Cat(Animal): def __init__(self, name): Animal.__init__(self, name) cat = Cat("小白") cat.eat() #执行结果 小白eat
多态:

       用一个例子来理解一下多态,就是有继承,有函数重写,父类引用指向子类对象

#人类 class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a Person, my name is %s' % self.name #学生类 class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score def whoAmI(self): return 'I am a Student, my name is %s' % self.name #老师类 class Teacher(Person): def __init__(self, name, gender, course): super(Teacher, self).__init__(name, gender) self.course = course def whoAmI(self): return 'I am a Teacher, my name is %s' % self.name def who_am_i(x): print(x.whoAmI()) p = Person('Tim', 'Male') s = Student('Bob', 'Male', 88) t = Teacher('Alice', 'Female', 'English') who_am_i(p) who_am_i(s) who_am_i(t)

原文链接:https://yq.aliyun.com/articles/689611
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章