2025-01-21 12:11阅读: 3评论: 0推荐: 0

python中针对实例对象的方法

以下是包含 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())则能帮助你进一步管理对象的属性。

本文作者:清澈的澈

本文链接:https://www.cnblogs.com/lmc7/p/18683395

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   清澈的澈  阅读(3)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示