`

Python的hasattr() getattr() setattr()方法的详解

 
阅读更多

小编在做压测过程中,会启动一些守护的子进程,作为主进程的一个属性,在执行完成功能时候,未知是否该守护进程属性是否完全关闭,小编就用了python的hasattr()来判断,然后做del操作,下面就说说这三个属性的用法:

 

1、hasattr(object, name)

    判断对象中是否包含name属性或者方法,返回的是bool类型

class ObjectTest():
    name="Kobe Bryant"
    def run(self):
        return "HelloWord"
test = ObjectTest()
hasattr(test, 'name') #判断对象有name属性
True
hasattr(test, "run")  #判断对象有run方法
True
hasattr(test, "test")  #判断对象有test方法
False

 

2、getattr(object, name[,default])

    获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选    

class ObjectTest():
    name="Kobe Bryant"
    def run(self):
        return "Hello Word"
test = ObjectTest()
getattr(test, 'name') #获取name属性,存在就打印出来
#"Kobe Bryant"
getattr(test, "run")  #获取run方法,存在就打印出方法的内存地址。
#<bound method ObjectTest.run of <__main__.ObjectTest instance at 0x1004d7dd0>>
getattr(test, "run")()  #获取run方法,后面加括号可以将这个方法运行
#Hello Word
getattr(test, "test")  #获取一个不存在的属性
'''
Traceback (most recent call last):
  File "/workspace/fistPython/src/test/doublelink.py", line 38, in <module>
    print getattr(test, "test")  #判断对象有test方法
AttributeError: ObjectTest instance has no attribute 'test'
'''
getattr(test, "number","123")  #若属性不存在,返回一个默认值
'123'

 

3、setattr(object, name, values)

    给对象的属性赋值,若属性不存在,先创建再赋值

class ObjectTest():
    name="Kobe Bryant"
    def run(self):
        return "HelloWord"
test = ObjectTest()
hasattr(t, "num")   #判断属性是否存在
False
setattr(t, "num", "123")   #为属相赋值,并没有返回值
hasattr(t, "num")    #属性存在了
True

 

 

分享到:
评论

相关推荐

    详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数

    本文将详细地解析Python中的四个与属性操作相关的函数:hasattr()、getattr()、setattr()、delattr(),并通过具体的示例代码来演示它们的使用方法和场景。 首先,我们来看一下hasattr()函数。这个函数用于判断一个...

    详解Python的hasattr() getattr() setattr() 函数使用方法

    在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...

    全面了解Python的getattr(),setattr(),delattr(),hasattr()

    ### Python的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对象的属性管理是非常重要的一个方面。为了更好地理解和使用对象的属性,Python提供了四个内置函数:`getattr()`、`setattr()`、`...

    浅析Python中的getattr(),setattr(),delattr(),hasattr()

    ### Python中的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对对象属性的操作是非常常见的需求。本文将深入探讨Python内置函数`getattr()`, `setattr()`, `delattr()`, 和`hasattr()`的功能...

    浅谈python中的getattr函数 hasattr函数

    ### Python中的`getattr`与`hasattr`函数详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是两个非常有用的内置函数,它们主要用于对象属性的操作,尤其在动态地访问对象属性时发挥着重要作用。本文将...

    Python反射和内置方法重写操作详解

    在Python中,反射主要通过一些内建函数实现,例如`hasattr()`、`getattr()`、`setattr()`和`delattr()`。 1. `hasattr(obj, attr)`:用于检查对象`obj`是否具有名为`attr`的属性。 2. `getattr(obj, attr)`:返回`...

    python3.5内置68个函数详解

    - `getattr(object, name[, default])`: 获取对象`object`的属性`name`,若不存在则返回`default`。 - `hasattr(object, name)`: 检查`object`是否有属性`name`。 - `setattr(object, name, value)`: 设置对象`...

    python实现可变变量名方法详解

    此外,我们还可以使用`hasattr()`和`setattr()`函数来检查和设置对象的属性,包括变量名。例如: ```python if hasattr(__main__, 'x'): value = getattr(__main__, 'x') else: setattr(__main__, 'x', 1) ``` ...

    Python扩展内置类型详解

    Python提供了诸如`dir()`, `getattr()`, `hasattr()`, `setattr()`等函数以及`inspect`模块来支持自省。 ### 总结 Python扩展内置类型是提高代码复用性和灵活性的有效手段。通过嵌入扩展,我们可以为现有类型添加...

    深入理解Python3 内置函数大全

    23. **`delattr()`**, **`setattr()`**, **`getattr()`**, **`hasattr()`** - 这些函数用于操作对象的属性。 ```python class MyClass: name = "World" clazz = MyClass() setattr(clazz, "name", "Hello") #...

    Python自省及反射原理实例详解

    通过`hasattr()`和`getattr()`,我们可以确保即使用户输入了不存在的方法名,程序也不会抛出异常,而是友好地给出提示。 总结来说,Python的自省和反射提供了强大的动态编程能力,使得代码更加灵活且适应性强。在...

    Python中的自省(反射)详解

    ### Python中的自省(反射)详解 #### 一、引言 在Python中,自省(也称为反射)是一种强大的特性,它允许程序在运行时检查和修改自身的结构与行为。这种能力对于创建灵活和可扩展的应用程序尤其有用。本文将深入...

    Python动态导入模块和反射机制详解

    Python动态导入模块和反射机制是Python编程中两个高级特性,它们极大地增强了代码的灵活性和可扩展性。动态导入模块允许程序在运行时根据需要加载模块,而反射机制则允许我们通过字符串来查找、获取、删除或添加模块...

    python有关的模块

    以上就是Python中一些常见的模块及其常用函数的详解,了解和熟练掌握这些工具可以帮助我们更高效地编写和维护Python代码。在实际开发中,根据具体需求,还会有更多其他模块的使用,比如sys模块用于系统交互,...

    Python 2.4 Quick Reference Card

    ### Python 2.4 快速参考卡知识点详解 #### 一、环境变量与命令行选项 **环境变量** - **定义**: Python 运行时会读取一系列环境变量来配置其行为。 - **示例**: `PYTHONPATH` 用于指定额外的模块搜索路径。 **...

    python学习笔记

    ### Python学习笔记知识点详解 #### 一、数据类型 Python 中的数据类型分为基本类型和复合类型。基本类型包括数字、字符串等,而复合类型则包括列表、元组、集合和字典。 - **Numbers(数字)** - `int`: 整型 ...

    Python类的继承、多态及获取对象信息操作详解

    ### Python 类的继承、多态及获取对象信息详解 #### 一、继承 在 Python 面向对象编程中,**继承**是一个非常核心的概念。它允许创建一个新的类(子类),该类继承了现有类(父类)的所有属性和方法。通过这种方式...

Global site tag (gtag.js) - Google Analytics