目录

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.  总结 

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐