随笔分类 - Python--面向对象
摘要:面向对象 自定义异常类型 定制异常类型成功
阅读全文
摘要:断言assert 断言是断定会有什么,没有的话就会报错,可以用assert方法来实现,如下: 断言报错, if 语句的执行依赖于前面代码执行结果
阅读全文
摘要:主动触发异常-raise
阅读全文
摘要:try..except...详细用法 1、如果一段代码有多种类型的错误,例如: 定制什么类型异常,能捕获相应的异常,但是没有指定的异常的话还是会报错的, 这样的话,能不能写多个except呢,答案是可以的,这就是异常的多分支 这样就能捕获多种类型的异常, 多分支:被检测的代码块抛出的异常有多种可能性
阅读全文
摘要:一、什么是异常 异常是错误发生的信号,一旦程序出错,并且程序没有处理这个错误,那么就会抛出异常,并且程序的运行随之终止 例如: 报错后后面的代码没有被执行 二、错误分为两种 1、语法错误 例如: 2、逻辑错误 a、ValueError b、NameError c、IndexError d、KeyEr
阅读全文
摘要:十五 面向对象实战 链接:http://www.cnblogs.com/linhaifeng/articles/7341318.html 本周作业 角色:学校、学员、课程、讲师要求:1. 创建北京、上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北
阅读全文
摘要:面向对象的软件开发 面向对象的软件开发包括下面几个步骤: 1.面向对象分析(object oriented analysis ,OOA) 软件工程中的系统分析阶段,要求分析员和用户结合在一起,对用户的需求做出精确的分析和明确的表述,从大的方面解析软件系统应该做什么,而不是怎么去做。面向对象的分析要按
阅读全文
摘要:练习二:在元类中控制自定义的类无需__init__方法 利用__call__方法
阅读全文
摘要:在元类中控制把自定义类的数据属性都变成大写 找到数据属性,然后对数据属性进行操作,
阅读全文
摘要:一、单例模式 可以看出,两个对象的内存地址不一样,但是对象的属性是一样的,能不能只实例化一次,然后其它对象都引用它,就像a =1 b =1 ,,我们发现,他们指向的是同一块内存地址,答案是可以的,这就是单例模式, 以上就是实现单例模式的一种方式,class,下面介绍第二种方式,通过元类实现单例模式
阅读全文
摘要:一、知识储备 1、__call__方法 实例化时传参 元类内部也应该有一个__call__方法,会在调用Foo时触发执行 Foo(1, 2, x=1)相当于 Foo.__call__(Foo,1,2,x=1) 可以看出,Chinese类实例化会触发它的父类的__call__方法, 我们先看一下__c
阅读全文
摘要:一般定义方法: 把metaclass元类换成自己定义的类Mymeta 对Mymeta进行定义: 在Mymeta中可以设置控制条件,对生成的类进行控制,如: 对注释进行控制: 如果没有注释或者注释为空,就会报错,报错为: 加上注释就不会报错了。
阅读全文
摘要:一、储备知识exec 参数1:字符串形式的命令 参数2:全局作用域(字典形式),如果不指定默认就使用globals() 参数3:局部作用域(字典形式),如果不指定默认使用locals() 示例代码如下: l为局部变量,执行后会增加z的键值对,g为全局变量,x的值会修改为10,m不存在,会添加进g p
阅读全文
摘要:一、__str__方法 示例代码: 实例化不会触发__str__方法,但是打印的话就会触发,如下: 执行了,但是TypeError,我们return一个字符串就可以了,如: 二、__del__方法 实例代码如下: 定义一个Open类,模仿文件打开操作, 可以看出,实例化触发了 __del__方法,
阅读全文
摘要:一、isinstance(obj,cls): 检查obj是否是类 cls 的对象 代码示例: 二、issubclass(sub, super): 检查sub类是否是 super 类的派生类 代码实例: 三、item系列 1.查询 触发了第一个方法 如果 这时候可以修改下代码: 这样就不会报错了,不存
阅读全文
摘要:一、根据用户的输入,执行对象方法 例如: 有用户选择的方法的话执行,没有的话就不会执行 还可以对上述代码进行改进,如下:
阅读全文
摘要:一、引子,想根据用户的输入来判断输出的属性 代码如下: 结果报错,是因为方式错误,name为字符串,所以说报错,那有没有方法实现呢,这就用到反射方法,如下: 二、通过字符串映射到对象的属性 1、查询是否有某个属性 True说明有这个属性 2、获取某个属性 但是如果没有某个属性,就会报错 如果不让让他
阅读全文
摘要:1、绑定到对象的方法的应用 绑定给对象,就应该由对象来调用,自动将对象本身当做第一个参数传入 2、绑定给类,就应该由类来调用,自动将类本身当做第一个参数传入 3、非绑定方法 非绑定方法,不与类或者对象绑定,谁都可以调用,没有自动传值一说
阅读全文
摘要:一、在类内部定义的函数,分为两大类: 1、绑定方法,绑定给谁,就应该由谁来调用,谁来调用就会把调用者当做第一个参数自动传入 绑定到对象的方法:在类内定义的没有被任何装饰器的方法 类里面定义的函数与对类来说与普通函数来说没有什么区别,一般是绑定到对象的, 绑定到类的方法:在类内定义的被装饰器class
阅读全文
摘要:一个求BMI体质指数的例子,代码如下: 体质指数(BMI)= 体重 / 身高 **2 但是,这样不够灵活,我们对代码做下更改: 如下: 上述代码一定程度上提高了灵活性,但是用户的调用的时候是在调用一个方法区执行,能不能让用户感觉就向在调一个数据属性呢,答案是可以的,这就用到了property装饰器
阅读全文

浙公网安备 33010602011771号