以下是包含 hasattr
的 Python 内置函数列表,类似于之前提到的各种方法:
1. getattr()
- 功能:获取对象的属性值。如果属性不存在,可以返回默认值。
- 语法:
getattr(object, name, default)
- object: 对象
- name: 属性名称(字符串)
- default: 如果属性不存在,则返回的默认值(可选)
- 示例:
class MyClass: def __init__(self): self.name = "Python" obj = MyClass() print(getattr(obj, 'name')) # 输出: Python print(getattr(obj, 'age', 25)) # 输出: 25 (因为 'age' 属性不存在)
2. setattr()
- 功能:为对象设置属性值。如果属性不存在,会创建新的属性。
- 语法:
setattr(object, name, value)
- object: 对象
- name: 属性名称(字符串)
- value: 要设置的属性值
- 示例:
class MyClass: def __init__(self): self.name = "Python" obj = MyClass() setattr(obj, 'age', 25) # 设置新属性 'age' print(obj.age) # 输出: 25
3. delattr()
- 功能:删除对象的属性。如果属性不存在,则抛出
AttributeError
。 - 语法:
delattr(object, name)
- object: 对象
- name: 属性名称(字符串)
- 示例:
class MyClass: def __init__(self): self.name = "Python" obj = MyClass() delattr(obj, 'name') # 删除 'name' 属性 print(hasattr(obj, 'name')) # 输出: False (属性已删除)
4. hasattr()
- 功能:检查对象是否有指定的属性。
- 语法:
hasattr(object, name)
- object: 对象
- name: 属性名称(字符串)
- 示例:
class MyClass: def __init__(self): self.name = "Python" obj = MyClass() print(hasattr(obj, 'name')) # 输出: True (属性存在) print(hasattr(obj, 'age')) # 输出: False (属性不存在)
5. type()
- 功能:返回对象的类型。
- 语法:
type(object)
- object: 任意对象
- 示例:
print(type(42)) # 输出: <class 'int'> print(type("Hello")) # 输出: <class 'str'>
6. isinstance()
- 功能:检查对象是否是指定类或其子类的实例。
- 语法:
isinstance(object, classinfo)
- object: 任意对象
- classinfo: 类或类元组
- 示例:
print(isinstance(42, int)) # 输出: True print(isinstance("Hello", str)) # 输出: True print(isinstance(42, (str, float))) # 输出: False
7. issubclass()
- 功能:检查一个类是否是另一个类的子类。
- 语法:
issubclass(class, classinfo)
- class: 类对象
- classinfo: 类或类元组
- 示例:
class A: pass class B(A): pass print(issubclass(B, A)) # 输出: True print(issubclass(A, B)) # 输出: False
8. callable()
- 功能:检查对象是否可调用(例如,函数、方法或具有
__call__
方法的对象)。 - 语法:
callable(object)
- object: 任意对象
- 示例:
def my_function(): pass class MyClass: def __call__(self): print("Called!") obj = MyClass() print(callable(my_function)) # 输出: True print(callable(obj)) # 输出: True print(callable(42)) # 输出: False
9. dir()
- 功能:返回对象的属性和方法列表。通常用于探索对象。
- 语法:
dir(object)
- object: 任意对象
- 示例:
class MyClass: def __init__(self): self.name = "Python" def say_hello(self): print("Hello!") obj = MyClass() print(dir(obj)) # 输出: ['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', 'name', 'say_hello']
10. id()
- 功能:返回对象的唯一标识符(内存地址)。
- 语法:
id(object)
- object: 任意对象
- 示例:
a = 42 b = 42 print(id(a)) # 输出对象 'a' 的唯一标识符 print(id(b)) # 输出对象 'b' 的唯一标识符,可能与 'a' 相同
11. vars()
- 功能:返回对象的
__dict__
属性,即对象的属性字典。 - 语法:
vars(object)
- object: 任意对象
- 示例:
class MyClass: def __init__(self): self.name = "Python" self.age = 30 obj = MyClass() print(vars(obj)) # 输出: {'name': 'Python', 'age': 30}
12. del()
- 功能:删除对象或对象的属性。
- 语法:
del object del object.attribute
- 示例:
a = 42 del a # 删除对象 'a' class MyClass: def __init__(self): self.name = "Python" obj = MyClass() del obj.name # 删除 'name' 属性
总结
这些内置函数提供了对对象、类、属性等的基本操作方法。通过 hasattr()
,你可以检查对象是否具有特定的属性,而通过其他函数(如 getattr()
、setattr()
、delattr()
)则能帮助你进一步管理对象的属性。