Python中的一些面试题(2)
python有什么工具可以找程序的bug,和分析程序的错误?
PyChecker: PyChecker是一个python脚本分析工具,它可以发现python脚本中的bugs Pylint: ylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码。 Pylint 是一 个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。
怎么在函数中使用全局变量?
global variable 在函数中声明使用全局变量 x = 5 def test(): print x #x global variable is 5 def test(): x = 6 print x #x is local variabl is 6
如何在各个modules下共享全局变量?
使用一个特殊的modules,来实现全局变量的共享,通常我们叫做配置文件 config.py x = 0 #默认的配置 mod.py import config config.x #引用全局变量 main.py import config import mod print config.x
对象的深拷贝方式?
列表的深拷贝 方式一: a=[1,2,3] b = a[:] 方式二: from copy import deepcopy a = [1,3,5] b = deepcopy(a) 字典的深拷贝 a={1:2,3:4} b = a.copy()#方式一 c = deepcopy(a)#方式二
python对象中的__call__的作用?
__call__返回一个可调用的对象, 但是有一个缺点就是很慢 example: class test(object): def __init__(self,value): self.x = value def __call__(self,value): return self.x*value a = test(4) print a(4) #结果是16
怎么找到一个对象中的所有方法或属性?
dir(x) x可以是一个实列也可以是一个类 这个函数将会返回一个按字母顺序排列的方法和属性的列表
怎么将一个字符串转换成数字?
Python内建方法int() 但是int()只能转换十进制的字符串: 例如 int(‘1233‘):结果是1233 int(‘0x88‘)这个就会引发ValueError int(‘agd‘)这个就会引发ValueError 总结之:int()只能转换全是数字字符的并且必须是十进制的字符串
怎么将数字转换成字符串?
使用内建方法str(),但是若想将十六进制或者八进制的数字转换成字符串就需要使用hex()和oct() 例如: str(123) str(0x11) str(011) #结果分别是‘123‘,‘17‘,‘9‘ hex(0x11) oct(011) #结果分别是‘0x11‘,‘011‘
如何修改字符串中某个位置的字符?
字符串是不可变的类型,需要转换成list或array来实现 方法一:转换成list来做 s = "Hello world" a = list(s) a[2:] = list("!!!!!") ‘‘.join(a) 方法二:转换成数组 import array #array有两个参数第一个代表转换的类型 #c 代表字符 a = array.array(‘c‘,s) #接着就可以对s中的字符串做任意修改了,但是只能一个一个字符的修改 a[2] = "!"
怎么使用一个字符串去调用一个方法?
有很多方式: 最好的一个就是使用map映射一个字符串到一个函数: 方法一: 列子: def func1(): print "I am func1" def func2(): print "I am func2" StrMap={"first1":func1,"first2":func2} StrMap["first1"]()#调用func1,结果是I am func1 方法二: getattr()这个函数用于获取一个类的方法和属性 例子: import copy test = getattr(copy,"deepcopy") a={1,2,4} b=test(a) print b 方法三: 使用locals(), def myFunc(): print "hello" fname = "myFunc" #locals()包含了执行到此刻代码中的所有本地变量 f = locals()[fname] f() #eval将会把参数的中字符串当作有效的python表达式执行 f = eval(fname) f() 方法四: 闭包 def test(): x = 5 def bibao(name): return x*name return bibao name = test() print name(5)
本文出自 “专注linux” 博客,请务必保留此出处http://forlinux.blog.51cto.com/8001278/1416670
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。