小编在做压测过程中,会启动一些守护的子进程,作为主进程的一个属性,在执行完成功能时候,未知是否该守护进程属性是否完全关闭,小编就用了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
相关推荐
本文将详细地解析Python中的四个与属性操作相关的函数:hasattr()、getattr()、setattr()、delattr(),并通过具体的示例代码来演示它们的使用方法和场景。 首先,我们来看一下hasattr()函数。这个函数用于判断一个...
在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...
### Python的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对象的属性管理是非常重要的一个方面。为了更好地理解和使用对象的属性,Python提供了四个内置函数:`getattr()`、`setattr()`、`...
### Python中的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对对象属性的操作是非常常见的需求。本文将深入探讨Python内置函数`getattr()`, `setattr()`, `delattr()`, 和`hasattr()`的功能...
### Python中的`getattr`与`hasattr`函数详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是两个非常有用的内置函数,它们主要用于对象属性的操作,尤其在动态地访问对象属性时发挥着重要作用。本文将...
在Python中,反射主要通过一些内建函数实现,例如`hasattr()`、`getattr()`、`setattr()`和`delattr()`。 1. `hasattr(obj, attr)`:用于检查对象`obj`是否具有名为`attr`的属性。 2. `getattr(obj, attr)`:返回`...
- `getattr(object, name[, default])`: 获取对象`object`的属性`name`,若不存在则返回`default`。 - `hasattr(object, name)`: 检查`object`是否有属性`name`。 - `setattr(object, name, value)`: 设置对象`...
此外,我们还可以使用`hasattr()`和`setattr()`函数来检查和设置对象的属性,包括变量名。例如: ```python if hasattr(__main__, 'x'): value = getattr(__main__, 'x') else: setattr(__main__, 'x', 1) ``` ...
Python提供了诸如`dir()`, `getattr()`, `hasattr()`, `setattr()`等函数以及`inspect`模块来支持自省。 ### 总结 Python扩展内置类型是提高代码复用性和灵活性的有效手段。通过嵌入扩展,我们可以为现有类型添加...
23. **`delattr()`**, **`setattr()`**, **`getattr()`**, **`hasattr()`** - 这些函数用于操作对象的属性。 ```python class MyClass: name = "World" clazz = MyClass() setattr(clazz, "name", "Hello") #...
通过`hasattr()`和`getattr()`,我们可以确保即使用户输入了不存在的方法名,程序也不会抛出异常,而是友好地给出提示。 总结来说,Python的自省和反射提供了强大的动态编程能力,使得代码更加灵活且适应性强。在...
### Python中的自省(反射)详解 #### 一、引言 在Python中,自省(也称为反射)是一种强大的特性,它允许程序在运行时检查和修改自身的结构与行为。这种能力对于创建灵活和可扩展的应用程序尤其有用。本文将深入...
Python动态导入模块和反射机制是Python编程中两个高级特性,它们极大地增强了代码的灵活性和可扩展性。动态导入模块允许程序在运行时根据需要加载模块,而反射机制则允许我们通过字符串来查找、获取、删除或添加模块...
以上就是Python中一些常见的模块及其常用函数的详解,了解和熟练掌握这些工具可以帮助我们更高效地编写和维护Python代码。在实际开发中,根据具体需求,还会有更多其他模块的使用,比如sys模块用于系统交互,...
### Python 2.4 快速参考卡知识点详解 #### 一、环境变量与命令行选项 **环境变量** - **定义**: Python 运行时会读取一系列环境变量来配置其行为。 - **示例**: `PYTHONPATH` 用于指定额外的模块搜索路径。 **...
### Python学习笔记知识点详解 #### 一、数据类型 Python 中的数据类型分为基本类型和复合类型。基本类型包括数字、字符串等,而复合类型则包括列表、元组、集合和字典。 - **Numbers(数字)** - `int`: 整型 ...
### Python 类的继承、多态及获取对象信息详解 #### 一、继承 在 Python 面向对象编程中,**继承**是一个非常核心的概念。它允许创建一个新的类(子类),该类继承了现有类(父类)的所有属性和方法。通过这种方式...