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

 

issubclasss/type/isinstance/callable/super的更多相关文章

  1. issubclass/type/isinstance、函数和方法、反射、callable、特殊成员补充

    一.issubclass/type/isinstance(***) 1.issubclass(参数1, 参数2):检查第一个参数是否是第二个参数的 子子孙孙类,如下示例: class Base(obj ...

  2. type,isinstance判断一个变量的数据类型

    type,isinstance判断一个变量的数据类型 import types type(x) is types.IntType # 判断是否int 类型 type(x) is types.Strin ...

  3. python---issubclass/type/isinstance/ 反射(内置函数getattr/delattr...)

    # 一 python面向对象-内置函数(issubclass(), type(), isinstance()) # issubclass 判断xxxx类是否是xxxx类的子类 class egg: p ...

  4. Python-判断变量类型和继承链-type isinstance

    在很多情况下,需要对类型进程动态判断,因为不同的数据类型不能互相做运算并且各自拥有不同的运算逻辑,所有需要判断对象的类型,常用的是type和isinstance,type更过用于获取对象是什么类型构建 ...

  5. python 面向对象五 获取对象信息 type isinstance getattr setattr hasattr

    一.type()函数 判断基本数据类型可以直接写int,str等: >>> class Animal(object): ... pass ... >>> type( ...

  6. Python学习 Day 8 继承 多态 Type isinstance dir __slots__

    继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base clas ...

  7. Python中的type(),isinstance,()dir(),的区别

    1.type() type(),获取一个变量的类型,返回值为:<class '类名'>,属于class类型2.isinstance() isinstance(),判断一个对象是否属于某种数 ...

  8. Rasa init报错:AttributeError: type object 'Callable' has no attribute '_abc_registry'

    错误:Rasa init --no-prompt 报错 原因:Python升级到3.7后会遇到该问题 解决:pip uninstall typing

  9. Pthon魔术方法(Magic Methods)-反射

    Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...

随机推荐

  1. seleniumCSS用法

    http://sauceio.com/index.php/2009/10/selenium-tip-of-the-week-start-improving-your-locators/ http:// ...

  2. IO文件操作

    × 目录 [1]IO文件的操作 [2]Directory类 [3]File类 [4]FileStream类 [5]文本文件的操作 一.IO文件的操作:   .net中对文件操作,经常会用到这样几个类: ...

  3. 快速提取邮箱地址(利用word或网站)

    在word中,CTRL+F,输入:[A-z,0-9]{1,}\@[A-z,0-9,\.]{1,} 点击“高级”,勾选“使用通配符”,点击“查找全部”: 复制.粘贴. 还可通过以下页面在线提取. htt ...

  4. CRUD全栈式编程架构之MVC的扩展设计

    MVC执行流程 路由的扩展 我理解的路由作用有以下几个 Seo优化,用“/”分开的url爬虫更爱吃 物理和逻辑文件分离,url不再按照文件路径映射 Controller,Action的选择 MVC路由 ...

  5. NOIP2018学军中学游记(11.09~11.11)

    前言 这篇博客记录的是我在\(NOIP2018\)提高组比赛中的经历. 这一次的\(NOIP\)是在学军中学举办的, 莫名感到一阵慌张. 但愿能有一个好成绩,不然就要\(AFO\)了... ... 说 ...

  6. 模拟网页的浏览Stack(POJ1028)

    题目链接:http://poj.org/problem?id=1028 注意: 1.用两个栈来模拟,一个用来存可以返回的,一个用来存可以前进的. 2.visit方法,就要将可以前进的栈清空. 3.ba ...

  7. json 序列化和反序列化的3个方法

    https://www.cnblogs.com/caofangsheng/p/5687994.html

  8. SQL之Case when 语句

    --case简单函数 (把多列变成单列) ' then '女' when ' then '男' else '其他' end from [Northwind].[dbo].[Users] --case搜 ...

  9. 微信小程序开发:禁止输入表情的控制,验证方法,光标控制

    <input class="weui-input" name="receiptMan" maxlength="10" bindinpu ...

  10. 修改与遍历MAP

    package com.*; import java.util.*; /** * Created by HP on 2018/8/2. */ public class Test { //定义一个用于转 ...