【发布时间】:2021-03-13 16:21:31
【问题描述】:
我刚刚开始学习 python 并尝试实现一个非常基本的程序。这是代码
from com.gs.entities import Employee
from _datetime import datetime, timedelta
class Branch:
def __init__(self, branchName):
self.branchName = branchName
self.startTime = datetime.now()
self.endTime = datetime.now() + timedelta(hours = 9)
self.employees = []
for i in range(0, 10):
if(i < 6):
self.employees.append(Employee(i, str(i), "Cashier"))
elif(i < 8):
self.employees.append(Employee(i, str(i), "Loan Officers"))
elif(i == 8):
self.employees.append(Employee(i, str(i), "Deputy Manager"))
elif(i == 9):
self.employees.append(Employee(i, str(i), "Manager"))
def startOperation(self):
print("Starting operation at " + self.startTime)
def endOperation(self):
print("Starting operation at " + self.endTime)
b = Branch("CP")
print(b.employees)
这是Employee类的代码
class Employee:
def __init__(self, employeeId, employeeName, employeeRole):
self.employeeId = employeeId
self.employeeName = employeeName
self.employeeRole = employeeRole
现在当我运行 Branch 类时,它会抛出以下错误
self.employees.append(Employee(i, str(i), "Cashier"))
TypeError: 'module' 对象不可调用
如果我将行更改为 self.employees.append(i),错误就会消失。我想做的是创建该分支机构的员工列表。
【问题讨论】:
-
Employee是否恰好位于名为Employee.py的文件中?你可能需要from com.gs.entities.Employee import Employee。 -
是的 Employee 类在 Employee.py 中,典型的基于 java 的方法。你的建议,我会检查并回复。
-
@TimRoberts - 你的建议奏效了,这背后的理由是什么?
-
com.gs.entities.Employee是模块的名称。因此,当您执行from com.gs.entities import Employee时,将导入名为“Employee”的模块 在该模块中,有一个名为Employee的类。所以,你可以说Employee.Employee(i, str(i), "Cashier")。这与标准的array模块相同。你可以说import array和x = array.array('h'),也可以说from array import array(从模块数组,导入类数组)和x = array('h')。
标签: python python-3.x