hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来
PYTHON;gutter:true;">>>> class test():
... name="xiaohua"
... def run(self):
... return "HelloWord"
...
>>> t=test()
>>> hasattr(t, "name") #判断对象有name属性
True
>>> hasattr(t, "run") #判断对象有run方法
True
>>>
getattr(object, name[,default])获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,可以在后面添加一对括号。
PYTHON;gutter:true;">>>> class test():
... name="xiaohua"
... def run(self):
... return "HelloWord"
...
>>> t=test()
>>> getattr(t, "name") #获取name属性,存在就打印出来。
'xiaohua'
>>> getattr(t, "run") #获取run方法,存在就打印出方法的内存地址。
<bound method test.run of <__main__.test instance at 0x0269C878>>
>>> getattr(t, "run")() #获取run方法,后面加括号可以将这个方法运行。
'HelloWord'
>>> getattr(t, "age") #获取一个不存在的属性。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute 'age'
>>> getattr(t, "age","18") #若属性不存在,返回一个默认值。
'18'
>>>
setattr(object, name, values)给对象的属性赋值,若属性不存在,先创建再赋值。
PYTHON;gutter:true;">>>> class test():
... name="xiaohua"
... def run(self):
... return "HelloWord"
...
>>> t=test()
>>> hasattr(t, "age") #判断属性是否存在
False
>>> setattr(t, "age", "18") #为属相赋值,并没有返回值
>>> hasattr(t, "age") #属性存在了
True
>>>
一种综合的用法是:判断一个对象的属性是否存在,若不存在就添加该属性。
PYTHON;gutter:true;">>>> class test():
... name="xiaohua"
... def run(self):
... return "HelloWord"
...
>>> t=test()
>>> getattr(t, "age") #age属性不存在
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute 'age'
>>> getattr(t, "age", setattr(t, "age", "18")) #age属性不存在时,设置该属性
'18'
>>> getattr(t, "age") #可检测设置成功
'18'
>>>
作者:岑宇 出处:http://www.cnblogs.com/cenyu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。
分享到:
相关推荐
在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...
本文将详细地解析Python中的四个与属性操作相关的函数:hasattr()、getattr()、setattr()、delattr(),并通过具体的示例代码来演示它们的使用方法和场景。 首先,我们来看一下hasattr()函数。这个函数用于判断一个...
### Python中的`getattr`与`hasattr`函数详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是两个非常有用的内置函数,它们主要用于对象属性的操作,尤其在动态地访问对象属性时发挥着重要作用。本文将...
为了更好地理解和使用对象的属性,Python提供了四个内置函数:`getattr()`、`setattr()`、`delattr()`和`hasattr()`。这些函数可以帮助我们在运行时动态地获取、设置和删除对象的属性。 #### 1. `getattr()`函数 `...
### Python中的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对对象属性的操作是非常常见的需求。本文将深入探讨Python内置函数`getattr()`, `setattr()`, `delattr()`, 和`hasattr()`的功能...
Python 3.5 内置的68个函数是编程中的重要工具,它们提供了丰富的功能,涵盖了许多常见的编程任务。这些函数分为多个类别,包括数学运算、类型转换、序列操作、对象操作、反射操作、变量操作、交互操作、文件操作、...
#### 常用内置函数详解 1. **`all()`** 和 **`any()`** - **`all()`**: 接受一个可迭代对象(如列表、元组等),如果该对象中的所有元素都为真,则返回`True`;否则返回`False`。 ```python all([True, True, ...
此外,我们还可以使用`hasattr()`和`setattr()`函数来检查和设置对象的属性,包括变量名。例如: ```python if hasattr(__main__, 'x'): value = getattr(__main__, 'x') else: setattr(__main__, 'x', 1) ``` ...
### Python常用函数详解 Python作为一门强大的编程语言,在软件开发、数据分析、自动化脚本等领域有着广泛的应用。Python的内置函数是其强大功能的基础之一,掌握这些内置函数可以帮助开发者更高效地编写代码。本文...
进一步,如果我们要动态执行模块中的某个函数,可以结合`getattr`函数。`getattr`允许我们通过字符串获取对象的属性,包括函数。例如: ```python func = input("请输入你需要使用的函数名:") f = getattr(count, ...
在Python中,反射主要通过一些内建函数实现,例如`hasattr()`、`getattr()`、`setattr()`和`delattr()`。 1. `hasattr(obj, attr)`:用于检查对象`obj`是否具有名为`attr`的属性。 2. `getattr(obj, attr)`:返回`...
### Python中的自省(反射)详解 #### 一、引言 在Python中,自省(也称为反射)是一种强大的特性,它允许程序在运行时检查和修改自身的结构与行为。这种能力对于创建灵活和可扩展的应用程序尤其有用。本文将深入...
Python提供了诸如`dir()`, `getattr()`, `hasattr()`, `setattr()`等函数以及`inspect`模块来支持自省。 ### 总结 Python扩展内置类型是提高代码复用性和灵活性的有效手段。通过嵌入扩展,我们可以为现有类型添加...
以上就是Python中一些常见的模块及其常用函数的详解,了解和熟练掌握这些工具可以帮助我们更高效地编写和维护Python代码。在实际开发中,根据具体需求,还会有更多其他模块的使用,比如sys模块用于系统交互,...
### Python 2.4 快速参考卡知识点详解 #### 一、环境变量与命令行选项 **环境变量** - **定义**: Python 运行时会读取一系列环境变量来配置其行为。 - **示例**: `PYTHONPATH` 用于指定额外的模块搜索路径。 **...
通过`hasattr()`和`getattr()`,我们可以确保即使用户输入了不存在的方法名,程序也不会抛出异常,而是友好地给出提示。 总结来说,Python的自省和反射提供了强大的动态编程能力,使得代码更加灵活且适应性强。在...
### Python学习笔记知识点详解 #### 一、数据类型 Python 中的数据类型分为基本类型和复合类型。基本类型包括数字、字符串等,而复合类型则包括列表、元组、集合和字典。 - **Numbers(数字)** - `int`: 整型 ...