Python零基础学习笔记(四十一)—— 面向对象编程思想
面向对象三大特点:
封装、继承、多态
封装:
在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)
执行结果:
继承:
子类继承父类的属性,父类有的功能和属性(私有除外),子类都可以用
下面是例子:
因为父类是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)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
什么是PHP或PHP代码以及PHP编程的工作原理
什么是PHP或PHP代码以及PHP编程的工作原理 欢迎大家!在今天的文章中,我们将讨论互联网最重要的编程语言之一PHP。我们将讨论PHP是什么以及PHP编程Langauge的工作原理。这将是一系列文章,涵盖PHP代码的基础知识,以帮助PHP学习者理解该语言。让我们开始吧! Web开发正在兴起,今天从一个非常小的企业到大型组织,每个人都需要一个Web应用程序或网站来连接更多潜在客户。因此,网络开发是一个很好的职业生涯。 有许多技术可用于编程网站,如微软的网络,PHP,Java,Python等。所有这些技术或语言都是惊人的,更容易学习和编程。但PHP编程非常类似于我们所说的语言,英语。因此学习起来容易得多。 什么是PHP代码或PHP编程? PHP编程语言是一种服务器端脚本语言,主要用于Web开发,但也用于通用目的。PHP由Rasmus Lerdorf创建,它最初代表个人主页,但它现在代表PHP:超文本处理器。 编程语言是最流行的服务器端脚本语言。截至2017年5月,PHP在1000万最受欢迎的网站中占83%。最流行的内容管理系统,如WordPress,Joomla,Drupal,Moodl...
- 下一篇
SpringBoot使用Sharding-JDBC分库分表
本文介绍SpringBoot使用当当Sharding-JDBC进行分库分表。 1.有关Sharding-JDBC 有关Sharding-JDBC介绍这里就不在多说,之前Sharding-JDBC是当当网自研的关系型数据库的水平扩展框架,现在已经捐献给Apache,具体可以查看Github,地址是:https://shardingsphere.apache.org/document/current/cn/overview/ shardingsphere文档地址是:https://shardingsphere.apache.org/document/current/cn/overview/。 目前貌似还不能从Maven仓库下载依赖,需要手动下载源码打包使用,所以本文使用的还是当当网的依赖。 2.本文场景 2.1 数据库 接下来介绍一下本文的场景,本
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)