如何解决Python类:避免在函数中多次使用“ self”参数
我创建了以下类以在python中生成素数:
book1 book2 book3 book4
0 1 genre 3 1
有没有办法避免在函数中多次使用自参数?就像,不是每次都使用self.primeNum,我可以只使用primeNum吗?
解决方法
在Python中,self
用于引用当前实例。除非您需要将这些值保留为 primeGen 实例的属性,否则只需删除它们即可。您可以详细了解here。
示例:
class primeGen:
def __init__(self,maxNum):
allNum = [0]*(maxNum+1)
allNum[0],allNum[1] = 1,1
self.primeNum = []
for i in range(2,int(math.sqrt(maxNum))+1):
if allNum[i] is 0:
for j in range(i*i,len(allNum),i):
allNum[j] = 1
for i in range(maxNum):
if allNum[i] is 0:
self.primeNum.append(i)
def print(self):
print(self.primeNum)
编辑:正如@wwii在他们的答案中正确指出的那样,也许您根本不需要课程。
,有没有一种方法可以避免多次在函数中使用自参数
从功能中获取功能,而不是使用类。
import math
def primeGen(maxNum):
allNum = [0]*(maxNum+1)
allNum[0],1
primeNum = []
for i in range(2,int(math.sqrt(maxNum))+1):
if allNum[i] is 0:
for j in range(i*i,i):
allNum[j] = 1
for i in range(maxNum):
if allNum[i] is 0:
primeNum.append(i)
return primeNum
q20 = primeGen(20)
print(q20)
q5 = primeGen(5)
print(q5)
,
根据您的情况,您只能创建self.primeNum
。这是Cass其他功能成员使用的唯一变量。
您是否真的需要所有其他变量作为类的字段?它们看起来像临时变量。您无需将它们添加到课程中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。