首页 > 其他分享 >【补充】isinstance()issubclass()

【补充】isinstance()issubclass()

时间:2023-07-31 21:57:23浏览次数:34  
标签:补充 object Dog issubclass print isinstance True

【补充】isinstance()/issubclass()

  • isinstance()函数和issubclass()函数是Python中的两个内置函数
  • 用于判断对象与类之间的关系。

【1】isinstance()

  • isinstance()函数用于检查一个对象是否是一个类的实例。
  • 它接受两个参数
    • 第一个参数是待检查的对象
    • 第二个参数是类或类型。
  • 如果对象是第二个参数指定的类或类型的实例
    • 则返回True;
    • 否则返回False。
  • 例如:
class Person:
    pass

person = Person()
print(isinstance(person, Person))  # 输出:True
print(isinstance(person, object))  # 输出:True
print(isinstance(person, str))     # 输出:False
  • 在上面的例子中,通过isinstance()函数可以判断person对象是否是Person类的实例。
  • 同时,由于所有的类都继承自object类,所以person对象也被认为是object类的实例。

【2】issubclass()

  • issubclass()函数用于检查一个类是否是另一个类的子类。
  • 它接受两个参数
    • 第一个参数是待检查的类
    • 第二个参数是父类或超类。
  • 如果第一个参数是第二个参数指定的类或类型的子类
    • 则返回True;
    • 否则返回False。
  • 例如:
class Animal:
    pass

class Dog(Animal):
    pass

print(issubclass(Dog, Animal))   # 输出:True
print(issubclass(Dog, object))   # 输出:True
print(issubclass(Dog, str))      # 输出:False
  • 在上述示例中,通过issubclass()函数可以判断Dog类是否是Animal类的子类。
    • 同时由于所有的类都是object类的子类,所以Dog类也被认为是object类的子类。
  • 这就是isinstance()函数和issubclass()函数的详解。
    • 通过使用这两个函数,我们可以判断对象与类之间的关系,从而进行相应的处理。

标签:补充,object,Dog,issubclass,print,isinstance,True
From: https://www.cnblogs.com/dream-ze/p/17594593.html

相关文章

  • 【补充】docker-compose部署Yapi
    【补充】docker-compose部署Yapi参考博客:docker-compose部署Yapi-知乎(zhihu.com)【1】了解DockerCompose:DockerCompose是Docker官方推出的一个用于定义和运行多个Docker容器的工具。通过使用DockerCompose,你可以使用一个单独的yaml文件来定义多个相关的服务,然后使......
  • 【补充】什么是mock数据
    【补充】什么是mock数据【1】介绍Mock数据是在软件开发过程中使用的一种方式,它用于模拟真实数据源的数据,并且具有相似的数据结构和字段。Mock数据通常被用作在实际的数据源不可用或者无法获得时进行开发、测试和演示。Mock数据的主要目的是在软件开发的早期阶段就提供可......
  • FFmpeg方法用法大全【欢迎补充】
    1.定义FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开......
  • DRF补充
    序列化器性别的返回  fromdjango.core.validatorsimportRegexValidator正则校验的导入代码之后就在这里进行使用code=serializers.CharField(required=True,validators=[RegexValidator(r"\d{4}",message="格式错误")]) day13defcreate(self,validated_data):......
  • 【补充】断言
    【补充】断言asserthasattr(self,'initial_data'),('Cannotcall`.is_valid()`asno`data=`keywordargumentwas''passedwheninstantiatingtheserializerinstance.')在断言代码中,hasattr(self,&#......
  • 【补充】模块与包的导入
    【一】模块一个Python文件,被别的Python文件导入使用这个Python文件称之为模块运行的这个Python文件称之为脚本文件模块是一个Python文件,它可以被其他Python文件导入并使用。模块通常包含一些相关的函数、类、变量和语句,以实现特定的功能。通过将代码组织到多个模块......
  • 【补充】on_delete的参数详解
    【补充】on_delete的参数详解models.CASCADE(级联删除):当删除与该字段关联的对象时,所有相关的对象将被级联删除。例如,如果一个出版社对象被删除了,与该出版社相关联的所有图书对象也会被删除。models.SET_DEFAULT:(设置为默认值):当删除与该字段关联的对象时,该字段的值将设置为字段......
  • 【补充】Django配置文件中的参数的作用
    Settings.py中的配置的作用【1】路径相关#pathlib:3.8+以后的模块,跟路径相关frompathlibimportPath#(1)项目根目录路径BASE_DIR=Path(__file__).resolve().parent.parent上述内容是在Django项目配置文件中使用pathlib模块设置项目根目录路径的操作。在Python......
  • 【补充】Django中的翻译函数
    【补充】Django中的翻译函数#只要做了国际化,会自动翻译成,当前国家的语言fromdjango.utils.translationimportgettext_lazyas_#使用方法_是一个函数,函数调用,可以将参数翻译成其他语言_('hello')django.utils.translation:这是Django框架提供的翻译模块,用于处理多......
  • 【补充】Python之一切皆对象
    【补充】Python之一切皆对象【1】一切皆对象Python中的一切都被视为对象。在Python中,每个值(包括数字、字符串、函数等)都是一个对象并且每个对象都属于特定的类(class)。类定义了对象的属性和行为。因此,可以说Python是一种面向对象的编程语言。对象是类的实例化结果......