包含:
- *args 和 **kwargs区别
- getattr(), setattr(), delattr(), hasattr()
- sys.argv[] 用法
- python 作 Unix脚本
- string.strip()
- sys.exit()
*args 和 **kwargs区别
def foo(*args, **kwargs):
print 'args = ', args
print 'kwargs = ', kwargs
print '---------------------------------------'
if __name__ == '__main__':
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4, a=1,b=2,c=3)
foo('a', 1, None, a=1, b='2', c=3)
输出结果如下:
args = (1, 2, 3, 4)
kwargs = {}
---------------------------------------
args = ()
kwargs = {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args = ('a', 1, None)
kwargs = {'a': 1, 'c': 3, 'b': '2'}
---------------------------------------
getattr(), setattr(), delattr(), hasattr()
返回对象属性或者方法:
#如果对象instance存在name属性,返回self.name,否则返回String
getattr(instance, name, String)
#如果对象instance存在method方法,返回self.method(即地址),否则返回String
getattr(instance, method, String)
#如果对象instance存在method方法,调用self.method(),否则返回String
getattr(instance, method, String)()
sys.argv[] 用法
sys.argv[0] :代码文件本身路径
sys.argv[1:] :一系列接受的命令行参数
python 作 Unix脚本
#编写一个带有main方法的python模块
if __name__ == '__main__':
#首行注明python执行路径
#!/usr/bin/python
#修改权限为可执行:chmod +x脚本
#运行
./*.py <命令行参数>
string.strip()
String.strip(chars) 去掉字符串开头和末尾的chars字符
>>>' I miss you '.strip()
I miss you
>>>'%% I miss % you%'.strip('%')
I miss % you
sys.exit()
sys.exit(n) 抛出SystemExit异常 未截获则退出程序 (n取值0~127)
1. n=0 表示正常 其余表示错误
2. 在Unix系统中 n=1 表示SyntaxError , n=2表示其他错误
3. 一般用于主程序退出
4. n也可以用字符串代替:"Sorry, goodbye!"
os.exit(n) 直接退出 一般用于子进程的退出
exit() 抛出SystemExit异常 一般在交互式shell中退出时使用
网友评论