栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python中'self'一词的目的是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中'self'一词的目的是什么?

让我们看一个简单的向量类:

class Vector:    def __init__(self, x, y):        self.x = x        self.y = y

我们希望有一种计算长度的方法。如果我们想在类中定义它,它将是什么样?

    def length(self):        return math.sqrt(self.x ** 2 + self.y ** 2)

当我们将其定义为全局方法/函数时,它应该是什么样?

def length_global(vector):    return math.sqrt(vector.x ** 2 + vector.y ** 2)

因此,整个结构保持不变。我该如何利用呢?如果暂时假设我们没有length为Vector类编写方法,则可以执行以下操作:

Vector.length_new = length_globalv = Vector(3, 4)print(v.length_new()) # 5.0

之所以有效,是因为的第一个参数length_global可以用作中的self参数length_new。没有明确的指示,这将不可能self。

理解显式需求的另一种方法self是查看Python在何处添加了一些语法糖。当你牢记时,基本上,

v_instance.length()

在内部转换为

Vector.length(v_instance)

很容易看到self适合的位置。你实际上并没有用Python编写实例方法;你编写的是必须将实例作为第一个参数的类方法。因此,你必须将实例参数显式放置在某处。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号