Python class 中的主要函数
Python main function in class
我是 python 的新手,main() 方法和 class def 让我很困惑。我正在尝试创建布隆过滤器,但我的程序不断终止,因为我认为我调用的东西不正确。
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__ == '__main__'
下还是在 def main()
下调用它?我不确定我是否正确地调用了这些,因为我对 Java 更加熟悉。谢谢!
def main():
bloomfilter = BloomFilter(100,5)
bloomfilter.rand_inserts(15)
name == '__main__'
子句是为了确保您的代码仅在直接调用模块时运行,而不是,例如,如果您从另一个模块中的模块导入某些内容。 main()
不是 python class 的特殊方法,所以我相信您的 objective 在这里,以简化的方式如下:
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)
您可能希望将 main() 放在 class 之外:
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 的新手,main() 方法和 class def 让我很困惑。我正在尝试创建布隆过滤器,但我的程序不断终止,因为我认为我调用的东西不正确。
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__ == '__main__'
下还是在 def main()
下调用它?我不确定我是否正确地调用了这些,因为我对 Java 更加熟悉。谢谢!
def main():
bloomfilter = BloomFilter(100,5)
bloomfilter.rand_inserts(15)
name == '__main__'
子句是为了确保您的代码仅在直接调用模块时运行,而不是,例如,如果您从另一个模块中的模块导入某些内容。 main()
不是 python class 的特殊方法,所以我相信您的 objective 在这里,以简化的方式如下:
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)
您可能希望将 main() 放在 class 之外:
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()