类和类的定义

6.2 类和类的定义

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如学生类,而实例是根据类创建出来的一个个具体的对象,每个对象都拥有相同的方法,但各自的数据可能不同。

6.2.1 什么是类

当你在马路上看到一辆飞驰的奥迪汽车时,这辆奥迪车就是汽车的一个实例。汽车就是一个类,每辆车都是汽车类的一个实例。
可以将理解为工厂制造汽车的设计图,通过这个设计图可以持续的造(实例化)不同的汽车。
类一般都具有属性和方法,在汽车中,属性可以是汽车的车身颜色,方法可以是前进、刹车等。
人也是一种,称为人“类”。张三、李四、王五都是人“类”的实例化。由属性和方法组成。属性是属于的变量,比如在人“类”中,属性可以包括姓名、性别、年龄等。而方法是存储在中的函数(操作、动作)。比如:吃饭、睡觉、走路等。

6.2.2 创建类

上面讲了这么多,让我们来在Python中创建一个最简单的类吧。
最简单的类

class MyClass1:
    pass

上面是在Python中语法允许的情况下创建的一个最简的类。在Python中创建类需要用到关键字class,然后是类名(注意:在Python中,一般使用驼峰命名法命名类名)。接着就是:和换行后的pass语句,表示这个类啥也不干。
这样我们就创建了一个名为MyClass1的类,上面的Python语句仅仅只是创建了这个类,就像之前用def创建一个函数一样,只是定义了。函数要想要使用则需要进行调用。而类想要定义则需要初始化:
>>> mc = MyClass1()
像上面的语句就是进行了类的初始化,mc就是MyClass类的一个实例化对象。
接下来我们将一步步介绍创建类时,添加属性和方法,一步步完善类。

6.2.3 实例化时传递参数

有时候在定义一个类时,我们可以直接定义类的属性,然后在实例化时进行修改,就像这样:

class Person:
    def __init__(self):
        self.name = None
        self.age = None


lisa = Person()
lisa.name = 'lisa'
lisa.age = 20

上面的代码中,我们在定义Person类时,同时也定义了2个属性:name和age。并且初始化为None。
后面则可以通过类.属性的方式访问或修改类的属性。
这种方法虽然可行,但是如果要创建多个实例化对象,每次都要再重新修改属性name和age非常不方便。于是,我们可以在定义类的时候直接传入参数,然后在类的初始化时同时为类的属性赋值。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age


lisa = Person('lisa', 18)
print(lisa.name, lisa.age)

lisa 18

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:类和类的定义 - Python技术站

(0)
上一篇 2023年3月31日 下午9:03
下一篇 2023年3月31日

相关文章

  • 函数的特殊使用方式

    5.4 函数的特殊使用方式 5.4.1 匿名函数 所谓匿名函数,即不再使用def语句这样标准形式定义的函数。Python中可以使用lambda关键字来创建匿名函数。用lambda创建的匿名函数的函数体比def定义的函数体要简单。语法如下: lambda [参数1[,参数2],….参数n]]:表达式 lam_sum = lambda arg1, arg2:…

    Python开发 2023年4月2日
    00
  • Python特性

    3.1 Python特性 Python是为可读性设计的,与英语有一些相似之处,并受到数学的影响。比如: Python使用新行来完成命令,而不像通常使用分号或括号的其他编程语言。 Python依赖缩进,使用空格来定义范围;例如循环、函数和类的范围。其他编程语言通常使用花括号或关键字来实现此目的。 Python中没有单个字符,单字符被认为是1个字符的字符串。 对…

    Python开发 2023年4月2日
    00
  • 使用pip管理库

    2.5 使用pip管理库 安装Python后会默认安装pip工具,该工具可以用来安装、升级和移除库。默认情况下 pip 将从[Python Package Index]https://pypi.org 处下载安装软件包。pip 有许多子命令: “install”, “uninstall”, “freeze” 等等。下面我们来介绍一些比较重要且实用的pip命令…

    Python开发 2023年4月2日
    00
  • 数据类型前置知识

    4.1 数据类型前置知识 4.1.1 数据类型的概念 顾名思义,数据类型就是指数据的类型,计算机不像人,能够很好的分辨数据类型,比如10086,计算机就不知道这个数据到底是字符串还是数值。计算机在用这个数据进行计算时就会出现问题。为了避免这种情况,需要对数据贴一个标签,这个标签就是类型。告诉计算机遇到这种数据应该怎么处理。 4.1.2 哈希 哈希(Hash)…

    Python开发 2023年4月2日
    00
  • 常用库

    2.4 常用库 2.4.1 time 时间的访问和转换 该模块提供了各种与时间相关的函数。相关功能还可以参阅 datetime 和 calendar 模块。 2.4.2 datetime 基本日期和时间类型 datetime 模块提供用于处理日期和时间的类。 2.4.3 calendar 日历相关函数 这个模块让你可以输出像 Unix cal 那样的日历,它…

    Python开发 2023年4月2日
    00
  • 集合(set)

    4.6 集合(set) 集合是由不重复元素组成的无序容器。集合中的元素不能重复,即使向集合中再添加同样的元素,也只会保留一个。由于集合的这种特性,所以一般可以用集合进行去重。集合中不能添加可变对象(不可哈希),因为无法判断两个可变对象是否相同,也就无法保证集合的内部不会有重复元素。集合中的元素是无序的,我们通过print可以显示集合内的元素,但是显示的结果并…

    Python开发 2023年4月2日
    00
  • 元组(tuple)

    4.5 元组(tuple) 元组这种数据类型和列表非常相似,也是一种序列。和列表的不同之处在于存放到元组内的数据不能直接修改。元组是一种可迭代对象。使用元组可以使程序运行性能提升,因为一般来说,创建元组类型tuple的变量比列表类型list要快,而且占用更小的存储空间。 4.5.1 元组的创建 4.5.1.1 通过逗号创建 >>> tup1…

    Python开发 2023年4月2日
    00
  • 字典(dict)

    4.7 字典(dict) 字典是Python中一种非常重要的数据类型。字典和之前的列表、元组不同,里面的元素使用键-值对进行存储。通常字典中元素的键由字符串或数字等可哈希数据类型组成。可以把字典想象成一个集合,只不过每个元素都是由键-值对组成。字典中的元素的键是不能重复的。字典中的元素也是无序的,这点和集合一样。可以通过键获取集合中元素的值,并且速度要远快于…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部