面向对象相关

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)
原文地址:https://www.cnblogs.com/wangjs/p/10831254.html