1、==与is:python可以通过使用
== 比较任意两个
Python 对象(不只是类实例),返回的值不是比较内存地址的值(不同于java),而是返回比较对象调用
__cmp__方法后的值。
例如,dict在有着全部相同的关键字和值时返回true,list在元素个数一样,且各个值也相等时也是true。自己写的类通过编写
__cmp__ 方法,来自定义比较逻辑,然后你可以使用
== 来比较你的类,
Python 将会调用你的
__cmp__ 专用方法。
那何如判断两个对象的地址一样呢(引用的是不是一个地方),可以用is,或者用id()取对象地址。
2、class中的方法,默认第一个参数一定是self。如果想不创建对象而直接引用module后调用的话,除了可以用@classmothed修饰,通常的做法是在module里定义个一个class的对象,然后引用它的方法。比如:
class a:
__str__ = "this is a class of test method"
def gen(self):
return self.__str__
_a = a()
gen = _a.gen #在另外的module中直接引用gen,实际上,_a.gen就把_a当作self传过去了
3、对文件路径的操作,除了os 和path外,还可以import glob。
glob.glob()方法支持用通配符过滤,比如glob.glob('*.mp3')返回的就是相对路径下的mp3文件名。
glob.glob("G:\music\pop\*.mp3"),返回的是这个路径下所有匹配的文件名。