Python中的主要功能
问题描述:
我是python的新手,main()方法和类def让我感到困惑。我正在尝试创建一个布隆过滤器,并且我的程序一直在终止,因为我认为我没有正确地调用它。Python中的主要功能
class BloomFilter(object):
def __init__(self, numBits, numHashFunctions):
self.numBits = numBits
self.bitArray = [0] * numBits
self.hash = bloomFilterHash(numBits, numHashFunctions)
def insert(self, key):
def lookup(self, key):
def rand_inserts(self,num):
def main(): #not sure if i should put this inside or outside class
bloomfilter = BloomFilter(100,5)
bloomfilter.rand_inserts(15)
if __name__ == '__main__':
BloomFilter().main()
所以,如果我想创建一个布隆过滤器100个加numBits和5个散列函数,我应该叫,根据“if__name__”或在高清主?我不确定是否我正确调用这些,因为我对java更熟悉。谢谢!
def main():
bloomfilter = BloomFilter(100,5)
bloomfilter.rand_inserts(15)
答
的name == '__main__'
条款是确保你的代码只有当模块直接调用运行,而不是,例如,如果你是从另一个模块中的一个模块中导入的东西。 main()
不是一个Python类的特殊方法,所以我相信你的目标下面是这个(简体):
class BloomFilter(object):
def __init__(self, numBits, numHashFunctions):
self.numBits = numBits
self.bitArray = [0] * numBits
self.hash = bloomFilterHash(numBits, numHashFunctions)
if __name__ == '__main__':
# creates an instance of the class
bloomfilter = BloomFilter(100,5)
# apply some method to instance...
bloomfilter.rand_inserts(15)
答
你会想要把主()在类的外部:
class BloomFilter(object):
def __init__(self, numBits, numHashFunctions):
self.numBits = numBits
self.bitArray = [0] * numBits
self.hash = bloomFilterHash(numBits, numHashFunctions)
def insert(self, key):
def lookup(self, key):
def rand_inserts(self,num):
def main():
some_value = Bloomfilter(100, 5)
some_value.rand_inserts(15)
main()
Python中没有特殊的“主”功能。 –