1.类变量和实例变量的区别?
类变量:类内定义的变量
实例变量:类外定义的变量
2.super的作用?
调用对象按照调用函数继承类的顺序寻找下一个
3.isinstance和type的区别并用代码举例说明
isinstance 检查第一个参数(对象)是否时第二个参数(类)的实例
class Foo(object):
pass
obj = Foo()
print(obj,isinstance(obj,Foo))
type是获取对象是哪个类创建的
class Foo(object):
pass
obj = Foo()
print(obj,type(obj))
if type(obj) == Foo:
print(‘obj是Foo类型’)
4.补全代码
def func(arg):
"""
判断arg是否可以被调用,如果可以则执行并打印其返回值,否则直接打印结果
param:传入的参数
"""
return 1
ret = func(arg)
if callable(arg):
print(func(arg))
else:
print('不可以调用')
5.补全代码
from types import MethodType,FunctionType def check(*args): func_count = 0 met_count = 0 foo_count = 0 for item in args: if isinstance(item,MethodType): met_count += 1 elif isinstance(item,FunctionType): func_count += 1 elif type(item) == Foo: foo_count += 1 return met_count,func_count,foo_count def func(): pass class Foo(object): def detail(self): pass @staticmethod def xxx(): pass obj = Foo() print(check(func,obj.detail,obj.xxx))
6.