摘要:
实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例) 1、namedtuple:命名元组,可以创建一个没有方法只有属性的类 from collections import namedtuple card = namedtuple('card',['rank','suit']) # ran 阅读全文
摘要:
面向对象的进阶(item系列,__new__,__hash__,__eq__) 一、item系列 getitem、setitem、delitem(操作过程达到的结果其实就是增删改查) class Foo: def __init__(self, name, age, sex): self.name = 阅读全文
摘要:
面向对象阶段复习 一、类,对象,属性方法调用 二、组合:表达什么有什么的问题,一个类都属性是另一个类的对象 运行结果: 命名空间:类和对象分别存在不同的命名空间中,互不影响 三、面向对象的三大特征:继承,多态,封装 1、继承 单继承: 父类(超类,基类) 子类(派生类):派生方法和派生属性 子类的对 阅读全文
摘要:
计算器实例 一、文字思路分析 拿到一个表达式,例如 ‘3+ (-80/2)+ 24*5-(18/3+ 4*(90/15-100) -3)’,通过这个表达式,我们除了考虑到数学的运算法则之外,还应该考虑到输入表达式过程存在的输入格式问题 1、格式问题:表达式中存在空格,就要去除空格 2、运算法则:有括 阅读全文
摘要:
反射 一、getatter, hasatter, delatter 1、getatter 运行结果: 2、hasatter getatter和hasatter属于夫妻党,先用hasatter判断是否存在,再用getatter获取对应的方法属性 运行结果: for循环,用户交互与夫妻档的结合: 运行结 阅读全文
摘要:
静态方法staticmethod和类方法classmethod 一、类方法classmethod 把一个方法变成一个类中的方法,这个方法可以直接利用类来调用,不需要依托任何的对象,即不需要实例化也可以做一些改变 当这个方法的操作只涉及静态属性的时候,就应该使用classmethod来装饰这个方法 运 阅读全文
摘要:
封装和@property 一、复习 1、接口类和抽象类 python中没有接口类,有抽象类,abc模块中的metaclass=ABCMeta,@abstructmethod,本质是做代码规范用的,希望在子类中实现和父类方法名完全一样的方法 在Java的角度上是有区别的: Java本来支持单继承,所以 阅读全文
摘要:
封装 广义上:面向对象的封装:代码的保护,面向对象的思想本身就是一种封装,只让自己的对象能调用自己类中的方法 狭义上:面向对象的三大特性之一 属性和方法都藏起来 不让你看见 正常的在外部调用属性: 运行结果: (1)私有属性 将类里面的属性转换成私有属性:前面加双下划线 运行结果,报错,找不到对应的 阅读全文
摘要:
python语言的鸭子类型和强类型语言的多态 前面讲接口类的时候举过一个有关支付方式的例子,支付方式可以有几种,微信支付,支付宝支付,苹果支付等,这几个不同的支付都统一于支付,像这样几个类都统一于 某一个类或者某一个方法,或者说一个类有不同的形态的情况就属于多态;虽然几种支付方式都归一于支付类,执行 阅读全文
摘要:
接口类的多继承以及抽象类的单继承 一、接口类(面向对象开发的思想和规范)的多继承 需求: 定义一个tiger类:会走,会游 定义一个hawk类:会走,会飞 定义一个swan类:会走,会游,会飞 (a)如果像以下代码的方式,则不能够满足以上的需求,只有swan的实例化才是正确的,其他两个tiger类和 阅读全文