艾利克斯部落 | 生活每一刻都值得被记录…

面向对象-练习题

1.面向对象三大特性,各有什么用处,说说你的理解。 封装:在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。 继承:个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。 多态:多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,指一个基类中派生出了不同的子类,且每个子……

异常处理

一、什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下:   错误分成两种: 语法错误 逻辑错误   二、异常的种类 在python中不同的异常可以用不同的类型(python中统一了类与类型,类……

元类

一、储备知识:exec函数 exec函数有三个参数: 参数1:字符串形式的命令 参数2:全局作用域(字典形式),如果不指定默认就使用globals() 参数3:局部作用域(字典形式),如果不指定默认就使用locals() 来看下面的例子: g = {“x”: 1, “y”: 2} # 全局 l = {} # 局部 exec(“”” glo……

内置方法

一、isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls) 检查obj是否是类cls的对象 class Foo: pass obj = Foo() print(isinstance(obj, Foo))  # 输出:True s = “alex” print(isinst……

反射

反射:通过字符串映射到对象的属性,也适用于类。 意思就是将字符串映射为属性来使用,比如通过imput输入一个字符串,把输入的字符串当作属性来使用,需要通过反射来实现。 反射主要用到: hasattr:判断属性是否存在 getattr:获取属性值 setattr:修改属性值 delattr:删除属性值   来看下面的例子: cla……

绑定方法与非绑定方法

定义 在类内部定义的函数,分为两大类: 一、绑定方法:绑定给谁就应该由谁来调用,谁来调用就会把调用者当作第一个参数自动传入     1. 绑定到对象的方法:在类内定义的没有被任何装饰器修饰的     2. 绑定到类的方法:在类内定义的被装饰器classmethod修饰的方法 二、非绑定方法:没有自动传值这么一说了,就类中定义的一个普通工具……

封装

封装不是单纯意义上的隐藏。   一、封装中如何隐藏属性: 属性前加 “__” 就行了,这种方式只在类定义阶段发生, 如: __x = 1  class A: __x = 1 # 隐藏属性 __x def __foo(self): # 隐藏属性 __foo print(“from foo”) def bar(self): self……