摘要:
1,面向对象编程思想 类:一类具有相同属性的抽象 属性(静态属性):实例变量、类变量、私有属性 方法(动态属性):构造函数、析构函数(默认就有)、函数、私有函数 对象/实例:类经过实例化后,就是对象/实例 封装 encapsulation:隐藏对象的属性和实现细节,仅对外公开接口 继承 inheri 阅读全文
摘要:
1,函数的参数 1.1,查看函数的参数类型 可以通过如下方式查看参数类型: 输出结果为: 含义如下: POSITIONAL_OR_KEYWORD:位置参数或者关键字参数,可以用位置参数或者关键字参数方式传参 VAR_POSITIONAL:可变位置参数,*args KEYWORD_ONLY:仅限关键字 阅读全文
摘要:
1,基本概念 1.1,数据类型 基本数据类型:字符串,数字,布尔等 引用数据类型:相对不可变(元组),可变(列表,字典,集合等) 基本数据类型存放实际值,引用数据类型存放对象的地址(即引用) ==:判断值是否相等 is:判断id是否相等,即内存地址,id()可以返回内存地址 1.2,序列类型 容器类 阅读全文
摘要:
1,函数作用域 这种情况可以顺利执行: 这种情况会报错: 这种情况也会报错: 原因是函数内部对total有定义后,解释器会认为total是局部变量,但是内部执行时,却发现total还没定义。 解决办法是将total声明为全局变量: 2,自由变量和闭包 自由变量可以用来保持额外的状态。 什么时候需要保 阅读全文
摘要:
1,包和模块 包package:本质就是一个文件夹/目录,必须带一个__init.__.py的文件 模块module:.py结尾的python文件 2,导入方法 import pandas, collections # 导入多个 import pandas as pd # 起别名 from modu 阅读全文
摘要:
1,私有属性 class Foo: def __init__(self, x): self.x = x 类的属性在实例化之后是可以更改的: f = Foo(1) print(f.x) # 1 f.x = 2 print(f.x) # 2 如果想禁止访问属性,即让属性私有,可以用“双下划线” 或者“单 阅读全文
摘要:
1,可迭代对象iterable,迭代器iterator,生成器generator 可迭代对象iterable: 实现__iter__方法的类。__iter__方法返回iterator或者generator。 实现__getitem__方法的类。其参数是从0开始的索引。 迭代器Iterator: 实现 阅读全文
摘要:
鸭子类型协议不完全总结序列:len,getitem切片:getitemv[0]分量的取值和写值:getitem和setitemv.x属性的取值和写值:getattr和setattr迭代:1)iter,2)getitem上下文管理器:enter,exit+=:1)iadd,2)add可散列:hash, 阅读全文
摘要:
1,鸭子类型和白鹅类型 1.1,白鹅类型 白鹅类型对接口有明确定义,比如不可变序列(Sequence),需要实现__contains__,__iter__,__len__,__getitem__,__reversed__,index,count。 对于其中的抽象方法,子类在继承时必须具体化,其余非抽 阅读全文
摘要:
工作中需要对地址包含关系进行测试,现有ipaddress标准库和IPy无法满足,于是自己动手编写小脚本,主要实现== , in, <等专用功能,其他功能可以后续用到再补充,例如迭代打印网段内所有地址,输出前缀长度等等。 一,含有的类:Host类:主机地址,eg, Host('192.168.1.1' 阅读全文