SRN*_*SRN 1 python algorithm self find
我正在学习Python OOP并尝试将Java类转换为Python类
有关Java代码google doc 链接,请参阅此PDF中的第15页
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)
Run Code Online (Sandbox Code Playgroud)
self这个课程有16个关键词.有没有更好的方法来写这门课?
是的,您不想将这些变量分配给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
Run Code Online (Sandbox Code Playgroud)
应该:
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
Run Code Online (Sandbox Code Playgroud)
您只self在引用实例变量时使用,而不是在方法内部的任何变量时使用.
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |