issubclass() :

  方法用于判断第一个参数是否是第二个参数的子子孙孙类。

语法:issubclass(sub, super)

检查sub类是否是 super 类的派生类

class A:
pass class B(A):
pass print issubclass(B,A)
type() 
  
给你一个参数,判断对象是不是由某一个指定类? --> type(obj) == Foo
class Foo(object):
pass class Bar(object):
pass def func(*args):
foo_counter =0
bar_counter =0
for item in args:
if type(item) == Foo:
foo_counter += 1
elif type(item) == Bar:
bar_counter += 1
return foo_counter,bar_counter # result = func(Foo(),Bar(),Foo())
# print(result) v1,v2 = func(Foo(),Bar(),Foo())
print(v1,v2)

实例

isinstance()

  来判断一个对象是否是一个已知的类型,类似 type()。

class Base(object):
pass class Foo(Base):
pass obj1 = Foo()
print(isinstance(obj1,Foo))
print(isinstance(obj1,Base))

实例

callable()

  1,用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

  2,对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

  3.,类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了__call__方法。

>>> class A: #定义类A
pass

>>> callable(A) #类A是可调用对象
True
>>> a = A() #调用类A
>>> callable(a) #实例a不可调用
False
>>> a() #调用实例a失败
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
a()
TypeError: 'A' object is not callable

>>> class B: #定义类B
def __call__(self):
print('instances are callable now.')

>>> callable(B) #类B是可调用对象
True
>>> b = B() #调用类B
>>> callable(b) #实例b是可调用对象
True
>>> b() #调用实例b成功
instances are callable now.

super--主动调用其他类的方法:

class Base:

    def f1(self):
print('5个功能') class Foo: def f1(self):
print('3个功能')
Base.f1(obj) obj = Foo()
obj.f1()

方法1

class Foo:
def f1(self):
super().f1()
print('3个功能') class Bar(object):
def f1(self):
print('6个功能') class Info(Foo,Bar):
pass obj = Info()
obj.f1()
结果:
6个功能
3个功能
#super()是从当前位置找他的下一个方法

方法2

 

最新文章

  1. Python 从零学起(纯基础) 笔记 之 迭代器、生成器和修饰器
  2. paip.汉字简化大法总结
  3. xp系统的安装SVN
  4. c#之线程池
  5. UE4编程之C++创建一个FPS工程(一)创建模式&amp;角色&amp;处理输入
  6. Floyd算法解决最短路径问题
  7. QWT6.0.1+win7下安装说明
  8. PHP 注意问题
  9. 使用putty登陆cygwin出现server unexpectedly ...error.解决方案
  10. AngularJS 基础教程一:
  11. java设计模式演示示例
  12. Android - 直线(line)画法
  13. CAD打开缓慢问题解决方法
  14. Spring框架解析
  15. 在做vue计算属性,v-for处理数组时遇到的一个bug
  16. ES 12 - 配置使用Elasticsearch的动态映射 (dynamic mapping)
  17. springMVC_08文件上传
  18. jqGrid 翻页
  19. js数据结构之hash散列的详细实现方法
  20. Thread.join方法的解析(转)

热门文章

  1. UIWindow及程序启动的过程
  2. dedecms网站扩展手机网站—共用数据库真正做到电脑手机同步访问,原pc站无需改动,对原pc站无任何影响
  3. python模块详解 shelve
  4. hibernate 模拟实现和What is and Why O/R Mapping
  5. vos设置可呼出手机或固话
  6. vue checkbox 双向绑定及初始化渲染
  7. MYSQL:随机抽取一条数据库记录
  8. PHP:如果正确加载js、css、images等静态文件
  9. Selenium入门17 selenium IDE安装及使用
  10. input,button制作按钮IE6,IE7点击时1px黑边框的解决方法