Wil*_*ell 1 python oop module class
我得到了一个学校作业,这是对面向对象编程的介绍.我真的很接近解决这个问题,我猜这个语法有些问题.也许你们中的一些专业人员确切知道问题是什么?
我上课了:
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)
Run Code Online (Sandbox Code Playgroud)
我试着在这里打电话:
import CashRegister
def main():
testRegister = CashRegister(22)
testProduct = "Mat"
testRegister.addItem(testProduct, 23.99)
print testRegister.getTotalRevenue ()
if __name__ == '__main__':
main();
Run Code Online (Sandbox Code Playgroud)
有谁发现了这个问题?如标题所示获取错误消息.
Python不会根据模块的名称对类的名称进行任何假设,它允许模块保存多个类.您需要显式导入类或将它们作为模块对象的成员引用.按照惯例,模块名称是小写,类名称以大写字母开头.例如:
# mymodule.py
class ClassOne(object):
pass
class ClassTwo(object):
pass
Run Code Online (Sandbox Code Playgroud)
在另一个文件中:
from mymodule import ClassOne, ClassTwo
one = ClassOne()
Run Code Online (Sandbox Code Playgroud)
要么
import mymodule
one = mymodule.ClassOne()
Run Code Online (Sandbox Code Playgroud)