热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Python面向对象编程】第02篇类和对象

本篇我们详细介绍一下Python类和对象的概念,以及如何定义类。对象对象是一个包含数据和功能的容器。数据代表了特定时刻的对象,因此也被称为状态。P

本篇我们详细介绍一下 Python 类和对象的概念,以及如何定义类。


对象

对象是一个包含数据和功能的容器。

数据代表了特定时刻的对象,因此也被称为状态。Python 使用属性表示对象的状态。功能代表了对象的行为,Python 使用函数表示行为。当函数和对象关联时,就成为了对象的方法。

因此也可以说,对象是一个包含状态和方法的容器。

在创建对象之前,我们需要先定义类。然后就可以基于类创建一个或多个对象。类的对象也被称为类的实例。


定义类

Python 使用关键字 class 加上类名和冒号定义类。以下示例定义了一个 Person 类:

class Person:pass

按照惯例,我们使用首字母大写的字符串作为类的名称。如果类名中包含多个单词,我们使用驼峰命名法,例如 SalesEmployee。

以上示例中的 Person 类没有任何内容,所以我们使用 pass 语句作为占位符,以后再添加更多代码。

如果需要创建类的实例,可以使用类名加上括号,例如:

person = Person()

当我们打印 person 对象,可以看到它的名字和内存地址:

class Person:passperson = Person()print(person)

输出结果如下:

<__main__.Person object at 0x00000253020E60B0>

如果想要获取对象的唯一标识&#xff0c;可以使用 id() 函数。例如&#xff1a;

print(id(person))

输出结果如下&#xff1a;

2555540037808

对象的 id 具有唯一性。在 CPython 中&#xff0c;id() 函数返回的是对象的内存地址。hex() 函数可以将 id() 函数返回的整数转换为小写形式的十六进制字符串&#xff1a;

print(hex(id(person)))
0x253020e60b0

person 对象是 Person 类的一个实例&#xff0c;以下 isinstance() 函数的返回结果为 True&#xff1a;

print(isinstance(person, Person)) # True

类也是对象

Python 中的一切都是对象&#xff0c;包括类。

当我们定义 Person 类时&#xff0c;Python 会创建一个名为 Person 的对象。Person 对象包含属性&#xff0c;例如&#xff0c;__name__ 属性存储了它的名称&#xff1a;

print(Person.__name__)

输出结果如下&#xff1a;

Person

Person 对象的类型为 type&#xff1a;

print(type(Person))
<class &#39;type&#39;>

Person 类还包含一个方法。例如&#xff0c;以下代码表示创建一个新的实例&#xff1a;

person &#61; Person()

总结


  • 对象是一个包含状态&#xff08;属性&#xff09;和行为&#xff08;方法&#xff09;的容器。
  • 类是创建对象的模板。
  • 在 Python 中&#xff0c;类也是对象&#xff0c;它是类型&#xff08;type&#xff09;的一个实例。

推荐阅读
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 开发笔记:python协程的理解
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了python协程的理解相关的知识,希望对你有一定的参考价值。一、介绍什么是并发?并发的本质就是 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • ARM汇编基础基于Keil创建STM32汇编程序的编写
    文章目录一、新建项目(1)工具介绍(2)创建项目:二、配置环境(1)配置芯片&#x ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • Python中判断一个集合是否为另一集合子集的两种高效方法及其应用场景分析 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 2022年Python面试题一.Python基础二.企业面试题结束语🥇🥇🥇✅作者简介:大家好我是编程IDὌ ... [详细]
author-avatar
莎仕比亚的围脖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有