python3 tips(1)

包含:

  • *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中退出时使用

你可能感兴趣的:(python3 tips(1))