Python基础知识(16):面向对象编程(Ⅰ)

类和实例

类是抽象的模板

实例是根据类创建出来的一个个具体的对象,每个对象都拥有相同的方法,但各自的数据可能不同。

类可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去

方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据

通过关键字“class”定义类,“Person”是类名,object表示该类是从哪个类继承下来的

class person(object):

    def hello(name):
return "Hello,%s"% name

根据Person类创建出Person的实例,创建实例是通过类名+()实现的

>>> bar=person()>>> bar.hello()
'Hello,<__main__.person object at 0x000002106B85C0B8>'

变量bart指向的就是一个Person的实例,后面的0x000002106B85C0B8是内存地址

数据封装

通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节

访问限制

隐藏内部的复杂结构,让内部属性不被外部访问,可以把属性的名称前加上两个下划线__

在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

继承

定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)

class Animal(object):
def play(self):
print('It's show time!')
def run(self):
print('Are you ready?') class Dog(Animal):
def run(self):
print('wang wang wang...') class Cat(Animal):
def run(self):
print('miao miao miao...')

子类获得了父类的全部功能,同时子类也可以增加自己的方法

一个类可以是一个或多个类的子类

当子类和父类有相同的方法时,在代码运行的时候会调用子类的该方法,父类的那个相同的方法则被覆盖了

多态

多态指“事物有多种形态”,可以对不同的对象使用同样的操作(继承)

Python学习之旅(十七)的更多相关文章

  1. 180分钟的python学习之旅

    最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时 ...

  2. python学习之旅

    python学习分类 python基础    +- day01——python初始.变量.常量.注释.基础数据类型.输入.if day02——while.字符串格式化.运算符.编码初识 day03—— ...

  3. Python学习之旅(三十七)

    Python基础知识(36):访问数据库(Ⅰ) 程序运行的时候,数据都是在内存中的.当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入 ...

  4. Python学习之旅(二十七)

    Python基础知识(26):常用内建模块(Ⅱ) 1.hashlib Python的hashlib提供了常见的摘要算法,如MD5,SHA1等 摘要算法又称哈希算法.散列算法. (1)它通过一个函数,把 ...

  5. python学习之旅:array 转 list

    最近学习python,记录学习的点滴. >>> import numpy as np >>> a = np.array([[1,2],[3,4]]) >> ...

  6. Python学习之旅(三十八)

    Python基础知识(37):访问数据库(Ⅱ) 二.MySQL MySQL是Web世界中使用最广泛的数据库服务器.SQLite的特点是轻量级.可嵌入,但不能承受高并发访问,适合桌面和移动应用.而MyS ...

  7. Python学习之旅(三十六)

    Python基础知识(35):电子邮件(Ⅱ) 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上 收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3 Pytho ...

  8. Python学习之旅(三十三)

    Python基础知识(32):网络编程(Ⅰ) 网络通信是两台计算机上的两个进程之间的通信,而网络编程就是如何在程序中实现两台计算机的通信 P协议负责把数据从一台计算机通过网络发送到另一台计算机 TCP ...

  9. Python学习之旅(三十二)

    Python基础知识(31):图形界面(Ⅱ) Python内置了turtle库,可以在计算机上绘图 运动控制: 1.画笔定位到坐标(x,y):turtle.goto(x,y) 2.向正方向运动 dis ...

随机推荐

  1. jvm理论-字节码指令案例

    案例1 public class Demo { public int calc(){ int a=100; int b=200; int c=300; return(a+b)*c; } public ...

  2. Win10系统的SurfacePro4如何重装系统-4 如何再次备份和还原系统

    还是进入到PE环境,直接用GHOST,Local-Partition-ToImage即可创建C盘新的备份   选择目标硬盘   选择要备份的分区   选择保存文件的路径(如果没有接键盘,打开底部的屏幕 ...

  3. grid和flex区别

    网格容器 VS Flex容器 网格属性 VS Flex属性

  4. spring mvc 实战化项目之三板斧

    laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 接上文希望从一张表(tb_role_info 用户角色表)的CRUD展开spri ...

  5. method.invoke(...)反射点

    import java.lang.reflect.Method; import java.util.Arrays; /** * @Author: hoobey * @Description: * @D ...

  6. 关于网站中引用COM组件的部署问题

    网站中引用了(PPT V14.0,即部署的服务器需要安装Office2010的)COM组件, 因此该功能对服务器有一定的环境要求: 1.安装Office2010,并激活. 2.配置: 1)开始-运行- ...

  7. iOS开发下载文件速度计算

    当我们写下载界面的时候,需要向用户展示每秒下载多少KB,这个时候就需要计算速度.如下: 我用的是AFNetworking来做下载的,我们拿AFHTTPRequestOperation来举列,AFHTT ...

  8. sqoop导入数据到hive中元数据问题

    简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...

  9. java.util.function 中的 Function、Predicate、Consumer

    函数式接口: 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但可以有多个非抽象方法的接口. 函数式接口可以被隐式转换为 Lambda 表达式. Function ...

  10. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。

      SortedSet可自动为元素排序. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序.   练习:自定义类用TreeSet排序. 与HashSet不同, ...