【发布时间】:2013-04-03 19:51:32
【问题描述】:
我是编程新手,如果这很明显,请多多包涵。
我在同一个 *.py 文件中有两个类。 sn-ps 如下。我正在尝试与客户一起模拟电梯,并且在主程序中我将创建 n 个客户。我希望电梯类中的方法,称为 startLift 能够访问客户的各个实例,但我不确定如何做到这一点,所以如果我遍历我的客户,在每次迭代时调用 startLift,我该怎么做所以它引用了这个实例。
提前谢谢你。
类电梯:
def __init__(self):
self.stops = building.getFloors(redbrick)
if self.stops <1:
print "elevator out of bounds"
else:
print "elevator has ",building.getFloors(redbrick),"stops"
我尝试改写问题:
self.stops = building.getFloors(redbrick)
我在电梯类中调用 building 方法,因此建筑物将有关它可以行驶多少层的信息传递给电梯类。
"redbrick" 是 buliding 类的一个实例,为了使其工作 "building.getfloors() ,我必须传递一个建筑实例,否则我会得到 p>
“必须调用未绑定的方法 getFloors(),并将构建实例作为第一个参数(什么都没有)”
但是如果我创建它,我如何将建筑物的多个实例传递给“building.getfloors()”,例如
白砖=建筑()
红砖=建筑()
黄砖=建筑()
【问题讨论】:
-
您似乎混淆了静态方法和实例方法。特别是
customer.getLocation(users)。您可能希望将customer的实例传递给startLift -
谢谢你回来找我,也许我没有正确解释这个问题,但你在回复中所说的关于将客户实例传递给启动电梯,我该怎么做 customer.getLocation (用户),在这种情况下,“用户”是客户类的一个实例,但如果制作该类的多个实例,我如何让它引用 customer.getlocaton()
-
elevator和customer都是类。但是,您希望创建每个类的实例。如果您在此处添加完整代码会更容易为您提供帮助,因为此代码需要进行一些重大更改才能正常工作。 -
此外,您的命名约定使这更难理解。每次您提到“客户”时,我们都无法判断您是指类客户、类的实例还是用于实例化类客户的参数。也许重命名类“客户”和参数“客户名称”或任何它应该是的。
标签: python instance pass-by-reference