gpt4 book ai didi

python 在类里面有太多 self

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:04 26 4
gpt4 key购买 nike

我正在学习 Python OOP 并尝试将 Java 类转换为 Python 类

请参阅此 PDF 中第 15 页的 Java 代码谷歌文档 link

class QuickFindUF:
"""docstring for QuickFindUF"""


def __init__(self, n):
self.id = []
for e in range(n):
self.id.append(e)


def connected(self,p,q):
return self.id[p]==self.id[q]

def union(self,p,q):
self.pid = self.id[p]
self.qid = self.id[q]
for i in range(len(self.id)):
if(self.id[i]==self.pid):
self.id[i]=self.qid


quf = QuickFindUF(9)
quf.union(3,4)
print quf.connected(3,4)

这个类中有 16 个 self 关键字。有没有更好的方法来编写这个类?

最佳答案

是的,您不想将这些变量分配给 self,这些是局部变量:

def union(self,p,q):
self.pid = self.id[p]
self.qid = self.id[q]
for i in range(len(self.id)):
if(self.id[i]==self.pid):
self.id[i]=self.qid

应该是:

def union(self,p,q):
pid = self.id[p]
qid = self.id[q]
for i in range(len(self.id)):
if self.id[i] == pid:
self.id[i] = qid

只有在引用实例变量时才使用 self,而不是方法内部的任何变量。

关于python 在类里面有太多 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com