【Python】类 - (Dog类)

文章介绍了Python中的面向对象编程概念,通过创建Dog类来演示如何定义类的属性(如名字和年龄)和方法(如sit()和roll_over())。接着,文章展示了如何根据Dog类创建实例,如my_dog和your_dog,并调用实例的方法来执行特定行为。最后,文章强调了类和实例的区别以及如何通过句点表示法访问属性和调用方法。
摘要由CSDN通过智能技术生成

目录

1.  缘起

2.  创建 Dog 类 

3.  创建实例 

3.1   根据类创建实例

3.1.1   访问属性 

3.1.1   调用方法 

3.2  创建多个实例 

4.  代码整合

5.  总结 


1.  缘起

        在面向对象编程中,我们编写表示现实世界中的事物和情景的 ,并基于这些类来 创建对象类是对事物共性的抽象表示对象是该类事物的一个个体,例如,动物就是一种“类”,狗、猫、人、羊就是一种“对象”。

        所以我们编写的类具有事物的 通用行为,每个对象都 自动具备这种通用行为 ,然后可根据需要赋予每个对象 独特的个性 。  

2.  创建 Dog 类 

        使用类几乎可以模拟任何东西。我们来编写一个表示小狗的简单类 Dog,它表示的不是特定小狗而是 任何小狗。对于大多数宠物狗,我们都知道些什么呢?它们都有名字和年龄,我们都还知道,大多数小狗会蹲下和打滚。由于大多数小狗都具备上述两项信息 属性(名字和年龄)和两种 行为(蹲下和打滚),我们的 Dog 类将包含它们。

        这个类让 Python 知道,如何创建表示小狗的 对象,根据类来创建的对象称为 实例化 ,所以根据 Dog 类创建小狗对象的过程,也被叫做创建小狗的实例化。

根据 Dog 类创建的每个实例,都将存储名字和年龄,我们赋予了小狗蹲下 (sit()) 和打滚(roll_over())的能力:

# 类的创建和使用
class Dog:
    '''一次模拟小狗的简单尝试'''

    #属性
    def __init__(self,name,age):
        '''初始化属性 name 和 age '''

        #获取于形参name相关联的值,并将其赋给属性 name
        self.name = name    
        self.age = age

    #行为
    def sit(self):
        '''模拟小狗收到命令时蹲下'''
        print(f'{self.name} is now sitting.')

    def roll_over(self):
        '''模拟小狗收到命令时打滚'''
        print(f'{self.name} rolled over!')

3.  创建实例 

3.1   根据类创建实例

创建一个表示特定小狗的实例:

# 类的实例化,创建一条名为'willie'、年龄为6岁的小狗
my_dog = Dog('Willie',6)

print(f'My dog\'s name is {my_dog.name}.')
print(f'My dog is {my_dog.age} years old.')

3.1.1   访问属性 

        访问实例的属性,可使用 句点表示法。第二行代码访问 my_dog 的属性:name 。

注:句点表示法表示 Python 如何获悉属性的值 

my_dog.name

        在这里,Python 先找到实例 my_dog,再查找与实例相关联的属性 name;name 是 Dog 类中的属性,通过 self.name 来定义。

        然后将 Dog 类中属性 name 的值返回给 my_dog 实例,此时,my_dog 实例也有了 name 的属性,再然后 my_dog 实例通过句点表示法调用 name 属性。第三行代码处,使用同样的方法来获取属性 age 的值。

输出的是有关 my_dog 相关的信息:

3.1.1   调用方法 

        根据 Dog 类创建实例后,就能使用句点表示法来调用 Dog 类中定义的任何方法。下面来让小狗蹲下和打滚:

my_dog.sit()
my_dog.roll_over()

        要调用方法,可指定 实例的名称(这里是 my_dog)和 要调用的方法,并用句点分隔。遇到代码  my_dog.sit() 时,Python 在 Dog 类中查找方法 sit () 并运行其代码。

小狗按照我们的命令做了:

3.2  创建多个实例 

可按需求根据类 创建任意数量的实例。下面在创建一个名为 your_dog 的小狗实例:

your_dog = Dog('lucy',3)

print(f'Your dog\'s name is {your_dog.name}.')
print(f'Your dog is {your_dog.age} years old.')

每条小狗都是一个 独立的实例,而且有自己的属性。

4.  代码整合

将创建的 Dog 类的实例,属性,方法代码整合在一起:

# 类的创建和使用
class Dog:
    '''一次模拟小狗的简单尝试'''

    def __init__(self,name,age):
        '''初始化属性name和age'''

        #获取于形参name相关联的值,并将其赋给属性 name
        self.name = name    
        self.age = age

    def sit(self):
        '''模拟小狗收到命令时蹲下'''

        print(f'{self.name} is now sitting.')


    def roll_over(self):
        '''模拟小狗收到命令时打滚'''

        print(f'{self.name} rolled over!')

# 类的实例化,创建一条名为'willie'、年龄为6岁的小狗
my_dog = Dog('Willie',6)

print(f'My dog\'s name is {my_dog.name}.')
print(f'My dog is {my_dog.age} years old.')

my_dog.sit()
my_dog.roll_over()

print("\n")
# 类的实例化,创建一条名为'lucy'、年龄为3岁的小狗
your_dog = Dog('lucy',3)

print(f'Your dog\'s name is {your_dog.name}.')
print(f'Your dog is {your_dog.age} years old.')

运行结果如下: 

5.  总结 

        终于复习回顾完类的相关知识点了。今天的分享总结就到这里了,如果有疑问的小伙伴,我们评论区交流嗷,笔者必回,我们下期再见啦 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aperion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值