这里是Customer类:访问数组中的元素,并呼吁他们fuctions
class Customer:
def __init__(self, timestamp, cid, item_count):
self.time_stamp = timestamp
self.customer_name = cid
self.item_count = item_count
def checkout(self, new_timestamp):
self.time_stamp = new_timestamp
def get_cus_name(self):
return self.customer_name
如果我创造这样的客户对象的空列表:
customers = [Customer]
然后在其他地方我打电话客户方法循环如下:
def checkout_customer(self, cid):
for cus in self.customers:
if cus.get_cus_name == cid:
cus.checkout(self.cur_num_customers + 7)
为什么我在尝试调用cus.checkout时遇到错误?我的ide告诉我,它期望一个客户,但得到了一个int。为什么它不会自动进入这个'自我'这个arg?
但是如果我只需要创建一个客户对象,并直接调用它的方法,它工作正常:
def foo(self):
cus = Customer(1,'pop',2)
cus.checkout(23)
这是我第一次学习Python和香港专业教育学院一直坚持试图找出名单,并访问其成员。也许我的初始化self.custormers = [Customer]
不正确?
编辑:
在我的测试类的构造函数创建一个空表是这样的:
self.customer = [Customer]
我能够添加客户没有问题:
def add_custormer(self, customer):
self.customers.append(customer)
我的问题是不添加客户,但是一旦他们在列表中,就访问他们的方法。像这样做self.customers [0] .checkout(1,'pop',2)给我一个错误“预期类型”客户'有int'。
这不是客户的名单,这是对客户类本身的引用列表。 –
是的,您客户列表的初始化不正确。您只是将“客户”类“蓝图”放入列表中,而不是真正的客户。你必须做一些像'self.customers = [Customer(1232144234,123,2)]' – dopstar