类和类的定义

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日

相关文章

  • 类型转换及相关函数

    4.11 类型转换及相关函数 在Python中,不同的数据类型是可以相互转换的,下面列举一些之前没有介绍但是比较常见的数据类型转换及相关函数,以供参考。 4.11.1 进制转换类 4.11.1.1 bin(x) 描述将整数转变为以“0b”前缀的二进制字符串。示例>>> bin(3)>>> bin(-10) ‘0b11”-…

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

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

    Python开发 2023年4月2日
    00
  • Python复合语句

    3.6 Python复合语句 复合语句是包含其它语句(语句组)的语句;它们会以某种方式影响或控制所包含其它语句的执行。通常,复合语句会跨越多行,虽然在某些简单形式下整个复合语句也可能包含于一行之内。if、while和for语句用来实现传统的控制流程构造。try语句为一组语句指定异常处理和/和清理代码,而with语句允许在一个代码块周围执行初始化和终结化代码。…

    Python开发 2023年4月2日
    00
  • 类属性和对象属性

    6.3 类属性和对象属性 在类定义中,属性按照归属分为对象属性、类属性。按照调用的私密性分为一般属性和私有属性。 6.3.1 类属性和对象属性 对象属性是最常用到的一种属性。即使我们对上面的类:MyClass1实例化了一个mc的对象,mc对象也不能进行有实质的操作。因为mc对象的类:MyClass1中既没有定义属性也没有定义方法。在定义类时还能定义类属性。接…

    Python开发 2023年3月31日
    00
  • 扑克玩法:9点半–数据分析

    扑克玩法:9点半–数据分析一、前言又是新的一年,在这里先给各位读者大大们拜个晚年。祝大家新年快乐,万事如意,阖家欢乐。过年拜年是中国的传统习俗,在春节期间人们会互相拜访并送上祝福。拜年不仅是一项重要的社交活动,也是一次难忘的旅程。它让我们感受到了团圆与温暖,同时也增强了彼此之间的联系。小编每年大年初一都会去祖母那儿拜年,一起去的还有我的叔叔、堂兄弟们。我们…

    Python开发 2023年3月31日
    00
  • Python词频分析

    Python词频分析 一、前言 在日常工作或者生活中,有时候会遇到词频分析的场景。如果是要进行词频分析,那么首先需要对句子进行分词,将句子中的单词进行切割并按照词性进行归类。在Python中有个第三方库叫jieba(结巴),可以对文章或者语句进行分词。不得不佩服这个库的作者,真是个取名鬼才:) 二、分词 2.1 安装库 jieba库github地址jieba…

    2023年4月2日
    00
  • Python内置函数

    5.6 Python内置函数 Python自带的所有内置函数如下:Python函数以上为Python3.10中所有的内置函数,其中绝大部分在前面的学习当中都已经接触过了。这里在补充介绍下没有提到或学习到的函数。 5.6.1 callable(object) 描述如果参数 object 是可调用的就返回 True,否则返回 False。 如果返回 True,调…

    2023年3月31日
    00
  • Python变量

    4.10 Python变量 4.10.1 变量介绍 变量,顾名思义,就是可以变化的量。变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python中,变量就是变量,它没有类型,我们所说的类型是变量所指的内存…

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