python 创建类和为什么类方法中self形参必不可少?
2021-01-18 04:12
标签:led ini pre 不可 慢慢 观察 大写 tle 必须 我们观察到在类中定义方法时,都带有self形参,为何必须在方法中定义形参self呢? 因为Python调用方法创建类实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,他是一个指向实例本身的引用,让实例能够访问类中的属性和方法。 以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。 这里注意的地方很多,我们慢慢来说: 根据约定,在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 必须 原文地址:https://www.cnblogs.com/zhibei/p/12915353.htmlclass Dog():
‘‘‘一次模拟小狗的简单尝试‘‘‘
def __init__(self, name, age):
‘‘‘初始化属性name和age‘‘‘
self.name = name
self.age = age
def sit(self):
‘‘‘模拟小狗被命令时蹲下‘‘‘
print(self.name.title() + "is now sitting.")
def roll_over(self):
‘‘‘模拟小狗被命令时打滚‘‘‘
print(self.name.title() + " rolled over!")
上一篇:Leetcode练习(Python):树类:第108题:将有序数组转换为二叉搜索树:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的
文章标题:python 创建类和为什么类方法中self形参必不可少?
文章链接:http://soscw.com/index.php/essay/43500.html