Python 2.7简介.到类:"'模块'对象不可调用"

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)

有谁发现了这个问题?如标题所示获取错误消息.

Bi *_*ico 6

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)