Python学习--类和对象

一、几个概念

类:代表对象的集合。

对象:对象包括特性和方法。特性只是作为对象的一部分的变量,方法则是存储在对象内部的函数。所有对象都属于某一个类,称为类的实例。

方法:绑定到对象特性上面的函数称为方法。

封装:指向程序中的其他部分隐藏对象的具体实现细节的原则。

继承:一个类可以使一个或者多个类的子类。子类继承超类的所有方法,

子类:当一个对象所属的类是另外一个对象所属类的子集时,前者就被称为后者的子类,后者就是前者的的超类。

二、类

2.1 创建类

在创建类之前,先说两个概念。

新式类:创建新式类创建必须有一个父类,如果不指定,默认就是继承object。

旧式类:没有父对象的的类。

在Python3.0以后不存在旧式类,之前的版本,创建类的时候就需要指明继承新式类,在模块或者脚本开始的地方加上__metaclass__ = type。

class ClassName:
      ‘类的帮助信息‘ #类文档字符串
       class_suite #类体

1.通过class语句可以创建一个类。

2.和定义函数类似,可以在类名下面加上关于类的帮助信息,通过ClassName.__doc__查看。

2.2 self说明

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

class test:
   def fun1(self):
      xxxx
   def fun2(self, par1, par2):
      xxxx

self代表的是对象自身,当然你可以取名不叫self,其它命名也可以。通过self,其它成员方法就可以访问要对其特效进行操作的对象本身了。

在调用方法时,无需显示的提供self这个参数。

2.3 私有化

为了让方法或者特性变成私有(从外部无法访问),只要在它的名字前面加上双下划线即可。

class Test:
    def __fun1(self):
       xxxx
    def fun2(self):
       self.__fun1()

如上述例子所示,__fun1从外界无法访问,但是在类的内部还是能使用。但是这个并不是真的无法访问,因为带双下划线的名字被_Test_fun1的形式。所以通过test._Test_fun1()形式还是能访问。

前面带有下划线的名字不会被带星号的import语句(from module import *)导入。

2.4 指定超类

class Test(object):
    xxxx

将其他类名写在class语句后面的圆括号里就可以指定超类。继承了超类会继承相应的方法,当然子类也可以重写,在子类里,和超类里同名的方法就会重写超类的方法。

issubclass(子类名,父类名)
可以检查一个类是否是另外一个的子类。

当然也可以通过属性__bases__去查看类的基类

isinstance(对象名,类名)
可以检查一个对象是否是一个类的实例

可以通过属性__class__查看对象属于哪个类

子类也可以继承多个超类,这叫多重继承。

class Test(object1,object2):
    xxxx

值得注意的是,当继承的多个超类里含有名字相同的方法,先继承的类中的方法会重写后继承的勒种的方法。

?

时间: 2024-10-24 22:05:55

Python学习--类和对象的相关文章

Python学习笔记_Python对象

Python学习笔记_Python对象 Python对象 标准类型 其他内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比较 对象身份比较 布尔类型 标准类型的内建函数 typeObj cmpobj1 obj2 strobj reprobj typeobj isinstanceobj 标准类型的分类 存储模型 更新模型 访问模型 不支持的类型 Python学习笔记_Python对象 首先来理解一个通俗的含义,什么是对象?其实对象无论在什么语言里面

Python的类和对象 入门级讲解(简单粗暴)

前言:本人是Python初学者.在学到Python的类和对象的时候,被'高深'的概念虐得死去活来.上网提问,得到的回复几乎都是'大神们'藏着掖着迫不得已才挤出来的只言片语:上网搜文章,长长的篇幅,那些字都认得,但是就是不知道是什么意思,并且都是反复地复制粘贴而导致文章排版极其辣眼睛. 一个阴郁的冬天,我在YouTube上搜到一个视频作者John Philip Jones,发现一个关于Python类和对象的讲解.这是目前为止我看到的最利于小白学习Python的讲解方法.由于在国内上YouTube不

python基础(类、对象、包)完整的总结

python基础(类和对象.包)类和对象对象是看的见摸的着的类是模板对象需要类才能创建出来类的构成(三个部分)类的名称:类名类的属性:一组数据类的方法:允许进行操作的方法(行为)class 类名():def添加方法class Cat():def run(self):print("cat is running")xiaobai = Cat()xiaobai.run()xiaobai.name = "小白"xiaobai.age = 40类的属性属性就是变量一个类可以创

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3:

转:python学习——类中为什么要定义__init__()方法

学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类定义一个矩形的类,目的是求周长和面积. 1 class Rectangle(): 2 def getPeri(self,a,b): 3 return (a + b)*2 4 def getArea(self,a,b): 5 return a*b 6 7 rect = Rectangle() 8 print(rect.getPeri(3,4)) 9 print(rect.

python的类和对象——进阶篇

写在前面的话 终于,又到了周五.当小伙伴们都不再加班欢欢喜喜过周末的时候,我刚刚写完这一周的游戏作业,从面对晚归的紧皱眉头到现在的从容淡定,好像只有那么几周的时间.突然发现:改变——原来这么简单.很多时候我们在想要为自己的青春拼搏一次的时候都输给了偶尔的抵触和轻松愉悦的生活.我们不过和走到最后的人差了两个字——坚持!所以尽管进入类和对象这一部分,大家都会有畏难心理,但是坚持一下下,你就会是那个走到最后的人! 回顾 上一篇中我们初步的认识了类和对象,了结了它们的一些语法,就相当于得到了一个对象的骨

python的类和对象——番外篇(类的静态字段)

什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释一下什么叫做静态字段:        我们看上面的例子,左中右三张图,左边是纯净的代码,中间是

Python学习-08-面向对象编程进阶和异常处理

一.类的进阶 1)静态方法: 跟类没有关系了.是一个单纯的函数.调用的时候,必须用类名来调用.(台湾与大陆的关系.)相当于类下面的一个函数,跟类没有关系,不能直接调用类的参数. 静态方法:只是名义上归类管理,实际上静态方法访问不了类或实例中的任何属性. 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问

Python学习-07-面向对象编程初级

一.摘要 1)     类: 属性:实例变量 类变量 私有属性 __var 方法:构造方法:初始化实例 析构方法:实例销毁的时候自动执行的方法. 私有方法 2)     对象:实例化一个类之后得到的对象 3)     封装:把一些功能的实现细节不对外暴露 4)     继承:代码的重用 多继承:Python3中都是广度优先. 5)     多态:接口重用,一个接口,多种实现 二.类和方法(参考http://www.cnblogs.com/alex3714/articles/5188179.htm