日子过得真快,又是想念你们的一天呢,今天也要记得微笑哦!!很久没有玩adobe的东西了,这几天摸鱼一下,手感已经生疏了,以前还打算一直学习下去,后来慢慢转变成了在合成上面的兴趣了呢,我知道很丑啦,所以只是在学习前的日常扯皮嘛,好啦好啦,开始学习了。
上次讲到了一小部分的装饰器,现在我们接着开始复习,关于decorator,要自带参数时,需要一个返回derector的高阶函数。
@log('execute')
def now():
print(...)
这个就相当于now= log('execute')(now)
对于大量二进制转化可以自定义一个方法:
def int2(x,base=2):
return int(x,base)
偏函数functools.partial() 固定了某一些参数
创建偏函数时,可以接受函数对象、*args,**kw三个参数
import functools
max2= functools.partial(max,10) 这里的10将作为*arg的一部分自动加到左边了
即max2(5,6,7)相当于
args=(10,5,6 7)
max(*args)
模块module 一个Py文件
包package 按目录组织模块
对于sys模块的argv变量有>=1个元素,第一个元素必定是文件名。
作用域 通过_作为前缀 此外还有特殊变量__xxx__注意这里是两个下滑空格
_xxx __xxx是private,不应该直接被引用
关于对象和模板其实也没设好说的,就两种编程的方式嘛,面向对象的话特点就是东西都一个个打包好,然后用哪个就调用哪一个,面向过程的话就是一整套行云流水地走下来,基本上各有各的特点吧,不过个人上建议可能面向对象比较好一点,对于后期维护这一块可能也是比较轻松的。
数据封装的话就是def定义方法加上__的那种私有变量吧,但是也只是名义上的封装不被随意调度,如果你硬是要调用的话也不是不行。
关于类,类的定义过程中第一个传入的参数一般是object,而方法传入的就是self,没什么为什么,只是一种约定俗成,要改也不是不行,只是大家都统一一些规范的话在交流上就会减少很多麻烦,而且这样子定义本来就很好,干嘛要另辟蹊径呢。
继承和多态一个例子就明白了,class Animal()........classDog(Animal) 懂?在继承父类后你也可以对子类经一部增加一些方法,这个时候如果子类中的方法和父类的重名了,则子类就会覆盖父类的那个方法。莫非这就是所谓的逆子哈哈哈哈!!!
是子类必属父类,是父类却不一定。
多态的好处,就是不同的类的对象可以用同一种方法
开闭的原则就是多态,对扩展开发;允许新增子类 对修改封闭:不需要修改依赖animal类的run_twice的函数等
静态语言传入animal 类时对象必须为animal或者其子类,否则无法调用run函数
动态语言不需要传入animal类,只要对象有一个run方法即可
type()模块用于检测判断
isinstance(a,(b,c))判断a是不是属于b或者c,当然后面也可以直接放一个,比如就只判断a是不是b,最后运行结果是true或者false
dir()返回包含字符串的list,获得对象的所有属性和方法