我收到了一份学校作业,内容是介绍面向对象编程。我真的很接近解决这个问题,只是我猜语法有问题。也许你们中的一些专业人士确切地知道问题出在哪里?
在这里上课:
class CashRegister():
__taxRate = 0
__numProductsSold = 0
__totalRevenue = 0.0
__taxAmount = 0.0
__soldProducts = []
def __init__(self, taxRate):
self.__taxRate = taxRate
def getNumProductsSold(self):
return self.__numProductsSold
def getTotalRevenue(self):
return self.__totalRevenue
def getTaxAmount(self):
return self.__taxAmount
def getSoldProducts(self):
return self.__soldProducts
def addItem(self, product, price):
self.__numProductsSold +=1
self.__totalRevenue += price
self.__taxAmount += price * self.__taxRate
self.__soldProducts.append(product)
我想在这里调用它:
import CashRegister
def main():
testRegister = CashRegister(22)
testProduct = "Mat"
testRegister.addItem(testProduct, 23.99)
print testRegister.getTotalRevenue ()
if __name__ == '__main__':
main();
有人发现问题吗? 如标题所示获取错误消息。
请您参考如下方法:
Python 不会根据模块名称假设类名称,它允许一个模块包含多个类。您需要显式导入您的类或将它们作为模块对象的成员进行引用。按照惯例,模块名称是小写字母,类名称以大写字母开头。例如:
# mymodule.py
class ClassOne(object):
pass
class ClassTwo(object):
pass
在另一个文件中:
from mymodule import ClassOne, ClassTwo
one = ClassOne()
或
import mymodule
one = mymodule.ClassOne()
