zoukankan      html  css  js  c++  java
  • 获取对象的信息

    使用type获取对象的类型,如下:

     1 class Animal(object): 
    2     def run(self): 
    3         print('Animal is running') 
    4 class Dog(Animal): 
    5     pass 
    6 print(type(Animal())) 
    7 print(type('123')) 
    8 print(type(123)) 
    9 print(type(None)) 
    

    输出如下:

    <class '__main__.Animal'>
    <class 'str'>
    <class 'int'>
    <class 'NoneType'>
    

    但是用type获取对象的类型再做比较十分不便,所以一般用isinstance()函数  

    class Animal(object):
        def run(self):
            print('Animal is running')
    class Dog(Animal):
        pass
    print(type(Animal()))
    print(type('123'))
    print(type(123))
    print(type(None))
    
    print(isinstance(Animal(),Animal))
    print(isinstance('123',str))
    print(isinstance(123,int))
    

    输出为:

    <class '__main__.Animal'>
    <class 'str'>
    <class 'int'>
    <class 'NoneType'>
    True
    True
    True
    

    还可以判断某个对象是否为列出的类型中的一种,如下:

    print(isinstance((1,2,3),(list,tuple)))
    输出:
    True
    

    使用dir()函数可以获取对象的所有属性与方法,还可以使用hasattr(对象,属性)来判断某个对象是否有某个属性,如hasattr(Animal(),'run'),还可以获取该对象的属性或者方法,如getattr(对象,属性或方法),还可以新增对象的属性,如setattr(对象,属性,设定值)  

     实例属性与类属性的区别

    之前定义类的时候在__init__函数中定义的是实例属性,如果需要定义类的属性,该属性不随实例的产生而产生,只要定义了类就都存在,类似于静态函数的概念,那么就直接在类定义时予以确定,不需要放在__init__函数中。

    实例属性的优先级高于类属性,不要让实例属性与类属性名字相同,否则实例属性的值会覆盖类属性的值。

      

      

      

  • 相关阅读:
    第二次结对作业(陆桂莺+崔亚明)
    第一次结对作业
    第二次作业:代码互改
    markdown详细
    第一次个人编程作业:我的分数我做主
    手动下载transformers的模型
    torch设置GPU
    Python import的搜索路径和不可以import的解决方法 (On Linux)
    Python中windows路径的3种写法
    一台计算机安装多个版本的torch和CUDA的教程
  • 原文地址:https://www.cnblogs.com/vonkimi/p/6937745.html
Copyright © 2011-2022 走看看