【笔记】python的类、创建和使用类:创建Dog类(方法__int__())、根据类创建实例(访问属性、调用方法、创建多个实例)

本文介绍了Python中的面向对象编程,通过创建Dog类来演示如何定义类、初始化实例并赋予对象属性和方法。讲解了__init__方法的作用,如何根据类创建实例,以及如何访问实例的属性和调用方法。最后展示了如何创建多个Dog类的实例。

一、类

面向对象编程是最有效的软件编写方式之一。

在编写时,我们定义一大类对象都有通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。

根据类来创建对象称为实例化

二、创建和使用类

实用类几乎可以模拟任何东西。

创建Dog类(方法__int__())

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

class Dog:
    """一次模拟小狗的简单尝试。"""

    def __init__(self,name,age):
        """初始化属性name和age。"""
        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")

代码解析:
1.第一行代码定义了一个名为Dog的类

2.根据约定,在python中,首字母大写名称指的是

3.类定义中没有圆括号,因为要从空白创建这个类。

4.方法__init__()
**(1)**类中的函数称为方法。

(2)第三行代码处的方法__init__() 是一个特殊方法,每当我们根据Dog类创建新实例时,python都会自动运行它。在这个方法的名称中,开头末尾各有两个下划线,这是一种约定,是为了避免python默认方法普通方法发生名称冲突
(请务必确保__init__()的两边都有两个下划线!!!)

(3)我们定义的方法__init__() 包含三个形参:self、name、age。

(4) 在这个方法的定义中,形参self必不可少,而且必须位于其他形参的前面,self是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

(5)代码中的 self.name和self.age都有前缀self。以self为前缀的变量可供类中的所有方法使用,可以通过类的任何实例来访问。

(6)self.name = name 获取与形参name相关联的值,并将其赋给变量name,然后该变量被关联到当前创建的实例。像这样可通过实例访问的变量称为属性

三、根据类创建实例

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

class Dog:
   --snip-- #意思是将上面我们定义的Dog类复制过来(手动复制)
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.")

输出结果
在这里插入图片描述
代码解析
1.在Dog类中方法__init__()创建一个表示特定小狗的实例,并使用提供的值来设置属性name和age

2.接下来python返回一个表示这条小狗的实例,而我们将这个实例赋给了my_dog.

3.命名约定通常可认为首字母大写的名称指的是,而小写的名称指的是根据类创建的实例

1.访问属性

要访问实例的属性,可使用句点表示法。

my_dog.name

在类中引用这个属性时使用的是

self.name

2.调用方法

根据Dog类创建实例后,就能使用句点表示法来调用Dog类中定义的任何方法了。

class Dog:
   --snip-- #意思是将上面我们定义的Dog类复制过来(手动复制)
   
my_dog = Dog('Willie',6)
my_dog.sit()
my_dog.roll_over()

输出结果
在这里插入图片描述

3.创建多个实例

例:根据需要创建任意数量的实例。在创建一个名为your_dog的小狗实例

class Dog:
   --snip-- #意思是将上面我们定义的Dog类复制过来(手动复制)
   
my_dog = Dog('Willie',6)
your_dog = Dog('Lucy',3)

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

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

输出结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜菜努力码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值