1. 类变量和实例变量的区别? 类变量不通过实例化后可直接打印输出,类变量存储在类的内存中 如果同时有类变量和实例变量,程序执行时,首先去找实例变量,如果实例变量不存在
1. 类变量和实例变量的区别?
类变量不通过实例化后可直接打印输出,类变量存储在类的内存中
如果同时有类变量和实例变量,程序执行时,首先去找实例变量,如果实例变量不存在,就去执行类变量
2. super的作用?
不需要明确给出任何基类的名字,它会自动找到所有直接基类,及其对应的方法.用于继承
3. isinstance和type的区别?
isinstance 是判断两个函数之间的逻辑父子关系
class Base(): pass class Foo(Base): pass class Bar(Foo): pass print(issubclass(Foo,Base)) # 判断是否子类 print(issubclass(Bar,Base)) # 判断是否是子孙类 print(issubclass(Base,Foo))
type 是判断当前的类型,是方法,还是函数
1 class Foo(object): 2 pass 3 class Bar(): 4 pass 5 def func(*args): 6 foo_counter = 0 7 bar_counter = 0 8 for item in args: 9 if type(item) == Foo: 10 foo_counter += 1 11 elif type(item) == Bar: 12 bar_counter += 1 13 return foo_counter,bar_counter 14 res = func(Foo(),Bar(),Foo()) 15 print(res) 16 v1,v2 = func(Foo(),Bar(),Foo()) 17 print(v1,v2)