类和类的定义

yizhihongxing

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日

相关文章

  • 面向对象编程

    6.1 面向对象编程相关概念 6.1.1 什么是面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。在该思想中程序里万物都是对象。OOP把对象作为程序的基本单元,把具有相同行为的对象归纳成类,通过封装隐藏类的内部细节,通过继承使类得到泛化,通过多态实现基于对象类型的动态分类。封装、继承和多态是…

    Python开发 2023年3月31日
    00
  • 使用pip管理库

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

    Python开发 2023年4月2日
    00
  • Python函数的参数

    5.3 函数参数 示例2中定义的函数虽然能够计算总分数,但是每次计算后的结果是固定的,为了增加函数的灵活性,我们希望在调用函数的时候可以传入一些数据,然后根据传入的数据进行计算。要满足这种需求,就需要在定义函数的时候定义参数。 5.3.1 形参和实参 在编程语言中,函数定义使用的是形参,调用时传入的是实参。形参(parameter),全称为形式参数,不是实际…

    Python开发 2023年4月2日
    00
  • 函数的特殊使用方式

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

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

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

    Python开发 2023年4月2日
    00
  • AI修复照片

    一、前言 最近闲来无事,翻了翻以前的老照片,看着多年前的老照片,感慨万千,仿佛又回到了以前的青春岁月。只可惜青春易逝,无法重来。意气风发,头角峥嵘的画面只能永远地留存在相片之中了。只叹当时没有多拍几张照片留作纪念,可惜当时设备也不好,照片效果不佳。留下遗憾。最近学习了Python,发现可以通过Python使用AI来修复老旧照片,而且修复后的效果非常不错。AI…

    2023年4月2日
    00
  • 列表(list)

    4.4 列表(list) 列表是Python中使用最频繁也是最重要最灵活的一种数据结构。Python列表中的元素类型可以不同,可以存放各种各样的数据,比如:数字、字符串、函数、类、字典等,甚至还可以嵌套存放列表。列表也是一种序列,可以通过索引获取列表中的元素。支持序列的各种操作。 4.4.1 列表的创建 4.4.1.1 通过列表标识符号创建 列表在创建的时候…

    Python开发 2023年4月2日
    00
  • 定义(创建)、调用函数及返回值

    5.2 定义(创建)、调用函数及返回值 5.2.1 定义(创建)函数 要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列语句组成的函数体构成的。函数定义的一般格式如下: def 函数名(参数列表): 函数体 例如: def sayhello(): print(‘hello’) 最简单的函数: d…

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