知行编程网知行编程网  2022-12-12 12:00 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python之初识类与对象的相关知识,希望可以帮到处于编程学习途中的小伙伴


Python初识类和对象


类的概念与定义

生活中,当我们走在路边,看到一辆车,脑子里首先想到的就是“这是车,然后是什么牌子的车”。在这里,我们使用编程中类的概念。同理,当你看到一只小狗时,你首先会想到它是一只狗,然后你就会想到它是一种什么样的狗。在编程中,同一类型的事物称为类,对这个类的共同特征进行归纳和定义,即为类的属性;总结定义了这个类能做什么,能做什么。类技能。


举个例子:

我想定义一个人的类,在python里面要怎么实现呢?

首先,我们会思考人有哪些共同特征?人有两只眼睛,两条腿等等,这些是每个人都有的特征,

其次,每个人也都有自己独特的特点。每个人的名字都不一样,每个人都有自己的年龄、性别、教育背景等,这些都是每个人独有的特点。

最后,all people have的skills包括吃饭、睡觉、走路、学习等等,这些是all people have的技能。

现在我们可以定义人类了,具体实现代码如下:

class Person:
    """class是定义类的关键字,class后面的P erson是类的名字,python解释器会把class这个关键字后面的名称设定为类的名字,
    类的名字默认首字母大写。"""
    #定义每个人都有两个眼睛
    eye=2
    #定义每个人都有两条腿
    leg=2
    def __init__(self,name,age,sex,education):
        """定义每个人的独有的特征,此处定义每个人都有自己的姓名,年龄,性别和学历"""
        self.name=name
        self.age=age
        self.sex=sex
        self.education=education
    def eat(self):
        #定义人都有的吃饭的技能
        print("%s is eating food"%self.name)
        
    def walk(self):
        #定义人都有的行走的技能
        print("%s is walking slow"%self.name)
        
    def study(self):
        #定义人都有的学习的技能
        print("%s is studying hard"%self.name)

执行上面的代码,python解释器会在内存中开辟一块内存空间,用来保存类中定义的人的特征和技能。

上面代码中,在定义人类的共同特征时,相当于在人类类的命名空间中定义了两个变量。在定义人类独有的特征时,相当于在人类命名空间中声明了一个名字。一个称为“初始化”的函数,其中存储了代表每个人的独特特征的变量。

接下来的三个函数用来表示大家会做的动作,python解释器也会在存储人名空间的内存中为这三个函数开辟三个区域来存放这三个函数(也可以称之为技能全人类共享。


对象的概念与定义

在编程的世界里,定义了一个类之后,我们就可以用这个类来一个一个生成人。这个过程也称为类实例化,生成的人称为对象。

现在我想用上面的程序实例化两个人,怎么实现呢? ?

person1=Person("jack",22,"male","college")
person2=Person("lily",18,"female","middle school")

这样我们就实例化出两个人:

第一个人名字叫jack,22岁,性别为男,大学学历,

第二个个名字叫lily,18岁,性别为女,中学学历。


对象的使用

现在我们已经创建了两个人,我们可以调用这两个人的特点和技能

比如,我想知道person1的特征,可以使用如下方法:

print(person1.name)         #查看person1的名字,输出为:jack
print(person1.age)          #查看person1的年龄,输出为:22
print(person1.sex)          #查看person1的性别,输出为:male
print(person1.education)    #查看person1的学历,输出为:college

查看person1的技能时:

person1.walk()      #调用person1的行走的技能
    会打印:jack is walking slow
person1.eat()       #调用person1的吃饭的技能
    会打印:jack is eating food
person1.study()     #调用person1的学习的技能
    会打印:jack is studying hard

查看person2的特征和技能时使用同样的方法

类与对象的对比分析

print(Person.eat,person1.eat,person2.eat)

执行结果如下:

<function Person.eat at 0x0000000002951BF8>
<bound method Person.eat of <__main__.Person object at 0x000000000295D240>
<bound method Person.eat of <__main__.Person object at 0x000000000295D278>>

调用类的eating方法,分别调用person1和person2的eating方法,可以看到他们的内存地址是不一样的。同样,在调用它们其他的行走和学习方法时,它们各自的内存空间也不一样。同样,这也充分说明,他们各自在记忆中开辟了一段属于自己的独特记忆空间。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享