时间表达方式
1、时间戳
2、格式化的字符串
3、结构化时间
计算器代码
对象存在类对象指针,如果调用的方法在对象中没有,则指向创建对象的类的方法,创建对象的类所需要的变量在对象中
类的继承
1、java、C#不支持多继承
2、经典类多继承深度优先(存在重复时,优先继承最深的)
3、新式类多继承广度优先(存在重复时,继承最近的)
类成员
字段
普通字段
对象中进行定义
静态字段
类中进行定义
方法
普通方法
对象触发,至少一个
类方法
用装饰器(classmethod),且参数不能为self必须是cls 类触发
静态方法
用装饰器(staticmethod),且参数可以任意加 类触发
属性(一个名词而已,被修饰过的方法)
普通属性
@property 进行定义
调用时少了个括号哦
新式类还支持设置、获取、删除属性值
静态字段+ __变成私有(两个下划线)
obj._Foo__name 对象点_类名__成员
总结
1、面向对象三大特性
封装、继承、多态(用的不多。。。。)
2、Python 封装
a、多个方法公用一组变量,变量封装到对象中
b、写到方法中哦
3、继承
a、基类和派生类
b、多继承哦(Python特殊)
c、新式类、经典类
d、广度优先(规则),深度优先 ====》 面试
4、多态
洗洗睡吧,这不科学哦,不好玩。。。。
4、类,对象,内存
5、类成员
a、字段
普通、静态
b、方法
普通方法 对象触发 至少一个self 值自动赋值为当前对象
类方法 类触发 只有一个cls 值自动赋值为当前类
静态方法 类触发 任意参数
c、属性
普通属性(方法的变种,变成访问时和字段相似)
@property
Data = property(方法名)
obj.Data = 执行方法,并获取方法的返回值
新式类中属性
@property
@方法名.setter
@方法名.deleter
6、类成员修饰符
1、共有,私有(两个下划线开头)
私有,只能内部访问
私有非要访问的话:对象点_类名__成员
7、蛋疼
obj = Foo()
obj() ==>__call__
8、__dict__
查看对象变量
查看类的变量
方法__str__
友好形式输出
1、计算器
2、游戏人生
面向对象。。。。
pickle可以序列化对象
obj = Foo()
3、联系paramiko configpaser(可选)