python创建一个类初始化两个变量name、age_python 创建类和为什么类方法中self形参必不可少?...

本文探讨了Python中类定义中的self参数的必要性。self是一个指向实例本身的引用,使得实例能够访问类中的属性和方法。当创建类实例时,Python自动传入self。例如,在Dog类中,__init__方法用于初始化实例属性,而sit和roll_over等方法利用self访问和操作实例属性。self.name和self.age分别用于存储实例的姓名和年龄,这些属性可以在类的任何方法中访问。
摘要由CSDN通过智能技术生成

标签:led   ini   pre   不可   慢慢   观察   大写   tle   必须

我们观察到在类中定义方法时,都带有self形参,为何必须在方法中定义形参self呢?

因为Python调用方法创建类实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,他是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。

classDog():‘‘‘一次模拟小狗的简单尝试‘‘‘

def __init__(self, name, age):‘‘‘初始化属性name和age‘‘‘self.name=name

self.age=agedefsit(self):‘‘‘模拟小狗被命令时蹲下‘‘‘

print(self.name.title() + "is now sitting.")defroll_over(self):‘‘‘模拟小狗被命令时打滚‘‘‘

print(self.name.title() + "rolled over!")

这里注意的地方很多,我们慢慢来说:

根据约定,在Python中,首字母大写的名称指的是类。这个类定义中的括号是空的,因为我们要从空白创建这个类。

(1)方法__init__()

类中的函数称为方法;__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法和普通方法发生名称冲突。

方法__init__()定义成包含三个形参:self、name和age。在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。为何必须在方法定义中包含形参self呢?因为Python调用这个__init__()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。我们创建Dog实例时,Python将自动调用Dog类的方法__init__().我们将通过实参向Dog()传递名字和年龄;self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参(name和age)提供值。

sit和roll_over中定义的两个变量都有前缀self。以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。self.name=name获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到当前创建的实例。self.age=age的作用与此类似。像这样可以通过实例访问的变量称为属性。

python 创建类和为什么类方法中self形参必不可少?

标签:led   ini   pre   不可   慢慢   观察   大写   tle   必须

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值