Python面试题
1.请描述with的用法?如果自己的对象要支持with语句,应该如何书写?
用法:
#操作文件是时候可以这么用 with open('a.txt') as f: '代码块'
为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__和__exit__方法
class Open: def __init__(self,name): self.name=name def __enter__(self): print('出现with语句,对象的__enter__被触发,有返回值则赋值给as声明的变量') def __exit__(self, exc_type, exc_val, exc_tb): print('with中代码块执行完毕时执行我啊') with Open('a.txt') as f: print('=====>执行代码块')
2.python中如果判断一个对象是否可调用对象?那些对象可以是可调用对象?如何定义一个类,使其对象本身就是可调用对象?
基本上判断python对象是否为可调用的函数,有三种方法:
1、使用内置的callable函数
callable(func)
用于检查对象是否可调用,返回True也可能调用失败,但是返回False一定不可调用
2、判断对象类型是否是FunctionType
type(func) is FunctionType # 或者 isinstance(func, FunctionType)
3、判断对象是否实现__call__方法
hasattr(func, '__call__')
如果定义一个类的话,里面只要定义了__call__方法,对象就可以被调用了

浙公网安备 33010602011771号