标签:python
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
Python中的一些面试题(2),布布扣,bubuko.com
标签:python
原文地址:http://forlinux.blog.51cto.com/8001278/1416670