1、写出r’123\n’*3的运行结果
123\n123\n123\n
拓展:print ‘123\n’*3
123
123
123
2、用for in 执行1亿次 自增操作
for i in xrange(100000000)
for i in range(100000000)
补充:xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
3、
reduce(lambda x,i : x+i ,[ i for i in temp if i>0 and temp.index(i)%2==0 ])
补充:
map()
将序列中的元素通过处理函数处理后返回一个新的列表
filter()
将序列中的元素通过函数过滤后返回一个新的列表
reduce()
将序列中的元素通过一个二元函数处理返回一个结果
4、简述classmothed和staticmethod的区别
对于classmethod的参数,需要隐式地传递类名,而staticmethod参数中则不需要传递类名,其实这就是二者最大的区别。
二者都可以通过类名或者类实例对象来调用,因为强调的是classmethod和staticmethod,所以在写代码的时候最好使用类名。
对于staticmethod就是为了要在类中定义而设置的,一般来说很少这样使用,可以使用模块级(module-level)的函数来替代它。既然要把它定义在类中,想必有作者的考虑。
对于classmethod,可以通过子类来进行重定义。
5、请简述一下代码的作用options,args = getopt.getopt(sys.argv[1:],"hu:p:i:","url=","path=","port="])
首先getopt是用来处理命令行参数的,
默认参数 getopt(args, shortopts, longopts = [])
shortopts: 是短格式 (-)
longtopts: 是长格式 (--)
短格式中带: 表示后面要参数
长格式中带= 表示后面要参数
options,args都是列表,只是options列表中有元组,而args只是单纯的列表
options会将匹配到的参数,用类似key-value的形式保存在元组中,而没有配到的数据会保存到args中,
python getopt_init.py --url=www.baidu.com -u www.baidu.com -p 88 -i 127.0.0.1 --port=88 55 66
#options结果
[('--url', 'www.baidu.com'), ('-u', 'www.baidu.com'), ('-p', '88'), ('-i', '127.0.0.1'), ('--port', '88')]
#args的结果
['55', '66']
6、已知A类,B类,C类(继承自A类),D类(继承自B类),E类(继承自C,D),如果A,D类都有个办法demo(),请问调用E类的demo的方法时,将会调用哪个基类的demo()方法?并说明原因
#c