首页 > 编程语言 >python面向对象编程:继承和多态

python面向对象编程:继承和多态

时间:2024-12-16 14:56:33浏览次数:5  
标签:__ name python age 多态 person 面向对象编程 self

在Python的面向对象编程(OOP)中,获取对象的信息通常涉及访问对象的属性和方法。以下是一些常见的方法和技巧,用于获取和检查对象的信息:

  1. 访问对象的属性
    你可以直接使用点符号访问对象的属性。

     

    python复制代码

    class Person:
    def __init__(self, name, age):
    self.name = name
    self.age = age
    person = Person("Alice", 30)
    print(person.name) # 输出: Alice
    print(person.age) # 输出: 30
  2. 使用dir()函数
    dir()函数返回对象的所有属性和方法(包括内置的和自定义的)的列表。

     

    python复制代码

    print(dir(person))
    # 输出: ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name']
  3. 使用__dict__属性
    对象的__dict__属性是一个字典,包含对象的所有实例属性和它们的值。

     

    python复制代码

    print(person.__dict__)
    # 输出: {'name': 'Alice', 'age': 30}
  4. 使用vars()函数
    vars()函数返回对象的__dict__属性,这在大多数情况下与直接访问__dict__是相同的。

     

    python复制代码

    print(vars(person))
    # 输出: {'name': 'Alice', 'age': 30}
  5. 使用getattr()函数
    getattr()函数可以安全地访问对象的属性,如果属性不存在,可以返回一个默认值,避免抛出AttributeError

     

    python复制代码

    print(getattr(person, 'name')) # 输出: Alice
    print(getattr(person, 'address', 'Not Available')) # 输出: Not Available
  6. 使用inspect模块
    inspect模块提供了更多关于对象的信息,例如方法的签名、源代码等。

     

    python复制代码

    import inspect
    print(inspect.getmembers(person))
    # 输出: [('__class__', <class '__main__.Person'>), ('__delattr__', <built-in method __delattr__ of Person object at 0x...>), ('__dict__', {'name': 'Alice', 'age': 30}), ..., ('name', 'Alice'), ('age', 30)]
    print(inspect.signature(Person.__init__))
    # 输出: (name, age)
  7. 自定义__str____repr__方法
    通过定义__str____repr__方法,可以自定义对象的字符串表示,使得打印对象时更有信息量。

     

    python复制代码

    class Person:
    def __init__(self, name, age):
    self.name = name
    self.age = age
    def __str__(self):
    return f"Person(name={self.name}, age={self.age})"
    def __repr__(self):
    return self.__str__()
    person = Person("Alice", 30)
    print(person) # 输出: Person(name=Alice, age=30)

通过这些方法,你可以方便地获取和检查Python对象的信息,这对于调试和了解对象的内部状态非常有帮助。

标签:__,name,python,age,多态,person,面向对象编程,self
From: https://blog.csdn.net/2301_78045723/article/details/144405445

相关文章

  • python 的GUI封装
    python的GUI封装功能扩展点进度条控件:增加对ttk.Progressbar的支持,用于展示进度。列表框控件:提供Listbox的创建方法,用于展示和选择多项数据。复选框和单选按钮:Checkbutton和Radiobutton控件的支持。画布和图形支持:提供Canvas控件,用于绘制图形或复杂的......
  • 基于django的python校园用车管理系统校车使用记录(源码+文档+运行视频+讲解视频)
     文章目录系列文章目录前言一、开发介绍二、详细视频演示三、项目部分实现截图四、系统测试五、代码参考源码获取目的摘要:基于Django的Python校园用车管理系统为学校的校车管理提供了便捷的工具。该系统借助Django框架的稳定性和Python语言的高效性,实现了校......
  • 基于django的python图书馆管理系统图书借阅归还续借逾期罚金缴纳(源码+文档+运行视频+
     文章目录系列文章目录前言一、开发介绍二、详细视频演示三、项目部分实现截图四、系统测试五、代码参考源码获取目的摘要:基于Django的Python图书馆管理系统为图书馆的管理和服务提供了全面的解决方案。该系统通过Django框架的高效性和Python语言的灵活性,实......
  • 最新 Python 爬虫利器!
    Python上有一个非常著名的HTTP库——requests,相比大家都听说过,用过的人都说好!现在requests库的作者又发布了一个新库,叫做requests-html,看名字也能猜出来,这是一个解析HTML的库,而且用起来和requests一样爽!安装安装requests-html非常简单,一行命令即可做到。需要注意一点就是,req......
  • python毕设 陕西非物质文化遗产网站论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景在国内,对于非物质文化遗产的保护与传承研究多集中在政策、传统保护方式等方面。关于借助网站等数字化手段对特定地区(如陕西)非物质文化......
  • 【Python】题库数据导出成Word文档
     需求场景:从题库解析的导入的数据,现在又需要导出成Word文档 数据库表结构:CREATETABLE`trn_ex_qabank`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键',`qa_type`char(1)NOTNULLCOMMENT'考题类型',`qa_subject`textNOTNULLCOMMENT'考题题目',......
  • 零基础学习人工智能—Python—Pytorch学习(十二)
    前言本文介绍使用神经网络进行实战。使用的代码是《零基础学习人工智能—Python—Pytorch学习(九)》里的代码。代码实现mudule定义首先我们自定义一个module,创建一个torch_test17_Model.py文件(这个module要单独用个py文件定义),如下:importtorch.nnasnnimporttorch.nn.fun......
  • 使用 Python 进行验证码图片识别
    首先,我们需要安装以下Python库:Pillow:用于图像处理。pytesseract:用于OCR(文字识别)。安装依赖你可以通过以下命令来安装必要的库:更多内容访问ttocr.com或联系1436423940bashpipinstallpillowpytesseract此外,pytesseract依赖于TesseractOCR引擎,确保你已经安装了Tess......
  • Python球球大作战
    系列文章序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python......
  • Python基础 day9 迭代生成,文件操作
    一:迭代器 iter特点:每次迭代得到的结果都是下一次迭代的初始值。迭代对象:字符串,列表,元组,集合,字典。可迭代对象的表现形式为内置了iter方法的数据,都属于可迭代对象。声明迭代器:方法一:        变量名=可迭代对象.__iter__()方法二:      ......