首页 > 编程语言 >python中针对实例对象的方法

python中针对实例对象的方法

时间:2025-01-21 12:20:34浏览次数:1  
标签:__ 针对 obj name python object 实例 print 属性

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

标签:__,针对,obj,name,python,object,实例,print,属性
From: https://www.cnblogs.com/lmc7/p/18683395

相关文章

  • python中针对类本身的方法
    当你提到__getattribute__时,它是Python中一个特殊的方法,用于访问对象的属性。重载该方法可以控制访问实例属性的行为。在Python中,__getattribute__是所有属性访问的基础方法,每次你访问对象的属性时,都会调用它。除了__class__、__mro__、__dict__等方法之外,__getattribute......
  • Python 常用运维模块之OS模块篇
    Python常用运维模块之OS模块篇OS模块获取当前工作目录更改当前工作目录返回当前目录路径返回上一级目录路径递归生成目录路径删除目录创建目录删除目录列出特定目录下文件和子目录删除某个特定文件重命名某个文件获取某个文件/目录的信息输出目录路径分隔符输出文件行......
  • Python方法重写与扩展
    Python方法重写与扩展在面向对象编程中,方法重写和方法扩展是两个非常重要的概念,它们使得派生类可以根据需要对基类的方法进行修改或增强。通过方法重写,派生类能够替代基类中已有的方法,而方法扩展则允许派生类在基类方法的基础上,增加新的功能或对方法进行额外的操作。方法......
  • windows上开防火墙针对端口限制能访问的ip
    背景客户环境是windowsserver2016的服务器,需要把windows上的防火墙用起来。启动的每一个服务端口都要列出对应的ip来访问,俗称控制访问,ip白名单。两种方法1.使用PowerShell命令行配置New-NetFirewallRule-DisplayName"AllowTCP8088fromSpecificIPs"`......
  • Python MQTT服务器
    pythonmqttserver是一个流行的开源工具,用于在分布式系统中实现消息传递。通过使用Python编写MQTT服务器,用户可以轻松地实现自己的消息传递系统。下面是对PythonMQTT服务器的简要解读和分析。一、PythonMQTT服务器的工作原理PythonMQTT服务器使用Python语言编写的,采用MQTT协......
  • python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
    本文原文链接文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完......
  • python 利用探空数据识别整层云
    选用蔡淼的论文:[1]蔡淼,欧建军,周毓荃,等.L波段探空判别云区方法的研究[J].大气科学,2014,38(02):213-222.里面的阈值法: #!/usr/bin/python3#-*-coding:utf-8-*-"""@Time:2025/1/2023:22@Author:Suyue@Email:1493117872@qq.com@File:cloud_area.py@Proj......
  • python转转商超书籍信息爬虫
    1基本理论1.1概念体系        网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以按照我们设置的规则自动化爬取网络上的信息,这些规则被称为爬虫算法。是一种自动化程序,用于从互联网上抓取数据。爬虫通过模拟浏览器的行为,访问网页并提取信息。这些信息可以是结构化的......
  • 【Python项目实战】爬取中国天气网天气数据
    1.引言在日常生活中,我们经常需要获取实时的天气数据。中国天气网www.weather.com.cn提供了较为丰富的天气数据资源,同时爬取不设过多限制,对新手友好。代码资源:https://download.csdn.net/download/weixin_74773078/90274520(有个性化程序定制需求可私信作者)2.准备工作在开......
  • python 数据清洗
    数据清洗,清洗“RHU”列为999999的数据#!/usr/bin/python3#-*-coding:utf-8-*-"""@Time:2025/1/2022:50@Author:Suyue@Email:1493117872@qq.com@File:cloud_area.py@Project:untitled4"""importpandasaspdimportnumpyasnp......