python使用小技巧

1、import模块 在python经常使用import声明,以使用其他模块(也就是其它.py文件)中定义的对象。 (1)、使用__name__写测试语句 下面是一个简单的库程序testlib.py。当直接运行testlib.py时,__name__为”__main__”。如果被import的话,__name__为”testlib”。 def lib_func(a): return a + 10 def lib_func_another(b): return b + 20 if __name__ == ‘__main__’: test = 101 print(lib_func(test)) print ‘__name__: ‘,__name__ #注意观察 在user.py中import上面的testlib: import testlib print(testlib.lib_func(120)) (2)、更多import使用方式 import testlib as test # 引用testlib模块,并将它改名为t 比如: import testlib as t print(t.lib_func(120)) from testlib import lib_func # 只引用testlib中的lib_func对象,并跳过testlib引用字段 这样的好处是减小所引用模块的内存占用。 比如: from testlib import lib_func print(lib_func(120)) from testlib import * # 引用所有testlib中的对象,并跳过testlib引用字段 比如: from testlib import * print(lib_func(120)) 2、查询 (1)、查询函数的参数 当我们想要知道某个函数会接收哪些参数的时候,可以使用下面方法查询。 import inspect print(inspect.signature(func)) (2)、查询对象的属性 除了使用dir()来查询对象的属性之外,我们可以使用下面内置(built-in)函数来确认一个对象是否具有某个属性: hasattr(obj, attr_name) # attr_name是一个字符串 例如: a = [1,2,3] print(hasattr(a,’append’)) (3)、查询对象所属的类和类名称 a = [1, 2, 3] print a.__class__ print a.__class__.__name__ (4)、查询父类 我们可以用 __base__ 属性来查询某个类的父类: cls.__base__ 例如: print(list.__base__) 3、使用中文(以及其它非ascii编码) 在python程序的第一行加入#coding=utf8,例如: #coding=utf8 print(“你好吗?”) 也能用以下方式: #-*- coding: utf-8 -*- print(“你好吗?”) 4、表示2进制,8进制和16进制数字 在2.6以上版本,以如下方式表示: print(0b1110) # 二进制,以0b开头 print(0o10) # 八进制,以0o开头 print(0x2a) # 十六进制,以0x开头 如果是更早版本,可以用如下方式: print(int(“1110”, 2 )) print(int(“10”, 8 )) print(int(“2a”, 16 )) 5、搜索路径 当我们import的时候,python会在搜索路径中查找模块(module)。比如上面import testlib,就要求testlib.py在搜索路径中。 我们可以通过下面方法来查看搜索路径: import sys print(sys.path) 我们可以在python运行的时候增加或者删除sys.path中的元素。另一方面,我们可以通过在shell中增加pythonpath环境变量,来为python增加搜索路径。 下面我们增加/home/vamei/mylib到搜索路径中: $export pythonpath=$pythonpath:/home/vamei/mylib 你可以将正面的这行命令加入到~/.bashrc中。这样,我们就长期的改变了搜索路径。 6、脚本与命令行结合 可以使用下面方法运行一个python脚本,在脚本运行结束后,直接进入python命令行。这样做的好处是脚本的对象不会被清空,可以通过命令行直接调用。 $python -i script.py

Posted in 未分类

发表评论