【Python】类 | 您所在的位置:网站首页 › 创建一个类cat包含属性name › 【Python】类 |
目录 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 相关的信息: 根据 Dog 类创建实例后,就能使用句点表示法来调用 Dog 类中定义的任何方法。下面来让小狗蹲下和打滚: my_dog.sit() my_dog.roll_over()要调用方法,可指定 实例的名称(这里是 my_dog)和 要调用的方法,并用句点分隔。遇到代码 my_dog.sit() 时,Python 在 Dog 类中查找方法 sit () 并运行其代码。 小狗按照我们的命令做了: 可按需求根据类 创建任意数量的实例。下面在创建一个名为 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.')运行结果如下: 终于复习回顾完类的相关知识点了。今天的分享总结就到这里了,如果有疑问的小伙伴,我们评论区交流嗷,笔者必回,我们下期再见啦 ! |
CopyRight 2018-2019 实验室设备网 版权所有 |