Python 面向对象(三)】的更多相关文章

Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三要素之一,封装.今天我们来学习一下继承(Inheritance) 人类和猫类都继承自动物类. 个体继承自父类,继承了父类的一部分特征,但也可以有自己的个性. 再面向对象的世界中,从父类继承,就可以直接拥有父类的属性方法,这样可以减少代码,多复用.子类可以定义自己的属性和方法. 2>.看一个不用继承的例子…
Python面向对象三要素-封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.封装概述 将数据和操作组织到类中,即属性和方法 将数据隐藏起来,给使用者提供操作(方法).使用者通过操作就可以获取或者修改数据.getter和setter. 通过访问控制,暴露适当的数据和操作给用户,该隐藏的隐藏起来,例如保护成员或私有成员. 二.类属性的访问控制  1>.抛出问题 #!/usr/bin/env python #_*_conding:utf-8_*…
一.绑定方法与非绑定方法 一.绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数传入 1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的 2.绑定给类的方法:为类中定义的函数加上一个装饰器@classmethod 二.非绑定方法:既不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论谁来调用都是一个普通的函数,普通函数没有自动传值的效果 案例如下: class Foo: def f1(self): print(self) @classmethod def f2(cl…
Python面向对象3要素-多态 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.多态概述 OCP原则:多用“继承”,少修改. 继承的用途:在子类上实现对基类的增强,实现多态. 在面向对象这种,父类,子类通过继承联系在一起,如果可以通过一套方法,就可以实现不同表现,就是多态. 一个类继承自多个类就是多继承,它将具有多个类的特征. 二.多态案例 我们之前已经学习过面向对象的三要素之封装和继承.多态就是一个很简单的定义,在Python中多态的表现需要满足两个要求即可.即继承父…
来源:Mr.Seven www.cnblogs.com/wupeiqi/p/4766801.html 四.类的特殊成员 上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段.方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用.无论人或事物往往都有不按套路出牌的情况, Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下: 1. __doc__ 表示类的描述信息 2. __module__ 和 __class__ __…
一.双下划线 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问. 双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是.不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name,所以,仍然可以通过_Student__name来访问__name变量. 外部代码可以设置了__name变量,但实际上这个__nam…
###################总结################# 面试的时候 让写python一些特殊方法 __init__ 创建对象的时候初始化 __new__对象实例化调用第一个方法 __call__ 对象 __del__ 销毁的时候 __len__ len调用行为 __str__ str调用行为 __bytes__ __hash__ __bool__ 返回true或者false __lt__小于 __le__小于等于 __eq__等于 __ne__不等于 __get__大于 _…
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print("Animal is .....") class Dog(Animal):#继承父类Anima…
__getitem__ 在对实例或对象使用索引访问时调用,self[key]__dir__ 收集当前模块的信息,包括继承自其它基类(包括object类)的属性和方法 __new 定义如何创建实例__init__ 构造方法,实例创建时如何初始化__del__ 析构方法,对象在内存中被释放时,自动触发执行__file__      当前文件在系统中的绝对路径__hash__ hash值相同表示hash冲突,但并不代表对象值相同.列表不可hash,元组可hash.     内建类型集合(set)的源码…
类属性.实例属性: class Tool(object): #属性(类属性)类对象(Tool) num = 0 #方法 def __init__(self,new_name): self.name = new_name #实例属性 Tool.num += 1 #(类属性的引用方法) tool1 = Tool('铁锹') tool2 = Tool('工兵铲') tool3 = Tool('水桶') 实例属性: 和具体的某个实例对象有关系并且一个实例对象和另一个实例对象是不共享属性的 类属性: 类属…