面向对象知识点总结

python是一门动态强类型语言:    弱类型体现在传参的时候不用指定数据类型,    强类型体现在比如 2+"str"会报数据类型错误

python不崇尚根据继承所得来的相似,比如tuple和list的方法已经非常相似了,却还是各自独立的方法这就是python崇尚的鸭子类型,优点是松耦合。

三种编程模式:面向过程编程、面向函数编程、面向对象编程面向对象设计模式:优点是解决了程序的可扩展性,缺点是可控性差面向对象的三大特性:继承、多态、封装

类中的静态变量可以被类和对象调用类变量中对于不可变数据类型最好用类名操作,而不用对象操作如果用对象操作:    类变量中如果是不可变数据类型,重新赋值是独立的,    类变量中如果是可变数据类型,修改值是共享的

当对象去调用方法的时候,就是把这个对象的值传递给这个方法了导入一个模块的时候就像是实例化了一个对象,会调用这个模块的__init__方法

组合:一个对象的属性值是另外一个类的对象

继承:    子类.__bases__可以查看父类名字    父类中没有,在子类中出现的属性叫做派生属性    父类中没有,在子类中出现的方法叫做派生方法    子类的对象调用:        只要是子类中有的名字一定先用子类的,子类中没有才用父类的,父类中也没有就报错        如果子类父类都有,优先使用子类的,如果还想用父类的,就得再单独调用父类的

super()方法的使用:    不是单独的找父类,而是根据继承顺序以广度优先来找的    class Base(object):    def __init__(self, name, age):        self.name = name        self.age = age    class temp(Base):        def __init__(self, name, age, sex):            super().__init__(name, age)            self.sex = sex

新式类的继承顺序都是广度优先经典类的继承顺序都是深度优先mro():    查看一个类的父类继承顺序

多态:    python天生支持多态

class Alipay:    def pay(self, money):        print("用支付宝支付了{}元".format(money))

class Wepay:        def pay(self, money):            print("用微信支付了{}元".format(money))

a = Alipay()    w = Wepay()

def pay(pay_obj, money):        pay_obj.pay(money)

pay(a, 200)    pay(w, 30)

上面的例子可以看出,调用pay方法的时候    如果是java强类型语言,    必须再创造一个类,让Alipay和Wepay都继承,    而在python中就不用,而是可以直接传Alipay类或者Wepay类

封装:    在类内部可以创造私有静态属性、私有属性、私有方法、    私有静态属性、私有属性、私有方法 只能在类内部使用    如果在类外部调用私有,通过  _类名__私有属性  调用

原文地址:https://www.cnblogs.com/QimiSun/p/10034356.html

时间: 2024-10-10 20:34:56

面向对象知识点总结的相关文章

面向对象知识点回顾整理

目录 面向对象知识点回顾整理 一.面向对象基础 1.类和对象 2.属性查找: 3.绑定方法: 4.对象之间的交互: 5.类的内置属性 6.三大特性:继承.多态.封装 二.面向对象高阶 元类 单例模式 面向对象知识点回顾整理 一.面向对象基础 面向对象编程的核心是对象二字,对象是属性与方法的结合体,python中一切皆对象. 优点:可扩展性强 缺点:编程的复杂度高 1.类和对象 对象:属性和方法的结合体 类:一堆属性和方法的结合体 python中是先有类再有对象,现实生活中是先有对象再有类 类名(

C++ 面向对象 知识点 小结

[摘要] 面向对象主要的知识点有,面向对象的基本概念,结构和类的区分,多态及各种构造函数.要求掌握 1.面向对象的基本原则(封装.继承.多态),面向对象的基本概念(类.对象.继承).2.类和结构体在访问控制上的差异.3.成员变量在静态成员变量的4个特性.引用成员变量必须采用的初始化方式.静态常量成员变量的初始化特点以及成员变量在初始化列表初始化顺序上的特点. 4. string与stack的四个初始化函数的书写. 5. 友元函数的尺度以及实现. 6.异常的2个例题要求熟练掌握. 7. 深拷贝与浅

逻辑串说面向对象知识点

学面向对象也有一段时间了,再次回顾,整理所得,写成这篇,知识点只是大致说,细节每本关于面向对象的书都有,就不啰嗦占用时间和篇幅了. 一  面向对象编程的由来: 和面向对象编程相对应的是面向过程编程 面向过程编程:就像造发动机一样,需要一步一步制造汽缸,活塞,喷油嘴等等,有先后顺序 面向对象编程:没有先后顺序,将发动机的所有组件全部制造出来,放在一个仓库中.这个仓库就叫函数库.然后将所有组件组装成一个发动机. 但是软件的包很不好管理,上世纪70年代,美国海军部提出面向对象编程.将汽缸看做是一个对象

python面向对象知识点疏理

面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(de

面向对象知识点

/*目前存在的问题: 1. 无法描述清楚这两个类之间的继承关系. 2. 存在着重复代码. 面向对象的三大特征: 1. 封装 2. 继承 3. 多态. 继承:继承是通过关键字extends体现的. 继承的格式: class 类名1 extends 类名2{ } 继承要注意的事项: 1. 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承. 2. 父类私有的成员不能被继承. 3. 父类的构造函数不能被继承. 4. 创建子类对象时默认会先调用父类无参的构造函数. *//*疑问: 为

php 面向对象知识点

面向对象知识: 1 你对面向对象的认识 面向对象(OO)出现在20世纪70年代,面向对象是认识事物的一种方式,用的是类比模式. 2 什么是类?什么是对象?类和对象之间的关系? (类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分. 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位) 类是抽象(外观=>属性.做的事=>行为)的,对象(实体)是具体的,对象是对类的实例化 3 面向对象的3大特征 封装.继承.多态.

Java面向对象知识点

对象:一切客观存在的事物都是对象 语法部分: 类的概念:1.类是对象的抽象 2.类是客观事物在人脑中的主观反应 3.类是对象的模板 类的设计: 属性:定义位置:类以内,方法以外 实例变量:1 有默认值, 2 至少在本类的内部有效, 3 可以和局部变量重复命名,局部变量优先 方法:功能 去掉static 声明部分:修饰符 返回值类型 方法名称 参数表 异常 实现部分 {}方法 构造方法:特殊方法 a.构造方法必须和类名相同 b.没有返回值类型组成部分,修饰符 方法名称 参数表 异常 c.不能手动调

python全栈开发 * 18 面向对象知识点汇总 * 180530

18 面向对象初识1class person: level="高级动物" mind="有思想" def __init__(self,name,age,gent,area,hobby): self.name=name self.age=age self.gent=gent self.area=area self.hobby=hobby print("__init__") pass def walk(self): pass def eat(self)

python全栈开发 * 23 面向对象 知识点汇总 * 180704

23 面向对象 -----特殊方法 1. isinstance(obj,类名) 判断对象是否是此类实例化或者此类的子类实例化出来的class A:passclass B(A):passb1=B()print(isinstance(b1,B)) # Trueprint(isinstance(b1,A)) # True2.issubclass(类名,类名1) 判断类名是否是类名1的子类class A:passclass B(A):passprint(issubclass(B,A)) #Truepri