Python: 作为另一个对象参数的对象
我有一个模块,里面定义了两个不同的类,都是用Python写的。我想知道怎么把一个类的对象作为另一个类的参数。比如,我有一个司机(Driver)类和一个汽车(Car)类,我想在创建汽车对象的时候,把司机对象作为参数传进去。
3 个回答
0
如果我理解你的问题,这里有一些帮助。假设我们有一个叫做银行账户的类:
class BankAccount: # 这是一个银行账户的类
'''在构造函数之后,我们还有另一个方法 '''
def transfer(self, amount, object): # 这个方法用来转账,amount是转账金额,object是传入的对象
BankAccount.credit(self, amount) # 这里调用了信用方法,给自己增加金额
object.debit(amount) # 然后从传入的对象中扣除相同的金额
调用这个方法的方法是:
bank1 = BankAccount() # 创建一个银行账户的实例
bank1.transfer(2000, objectname) # 调用转账方法,把2000元转给objectname这个对象
1
创建一个司机对象的实例,然后把它传递给汽车的构造函数。
比如:
>>> d = Driver()
>>> c = Car(d)
或者直接
>>> c = Car(Driver())
[编辑]
所以你是在定义一个类的时候想用一个司机的实例吗?我还是不太明白你想做什么,但听起来像是某种装饰器的用法。
def OwnedCar(driver):
class Car(object):
owner = driver
#...
return Car
steve = Driver()
SteveCar = OwnedCar(steve)
8
更新: 提问者似乎是在类定义的时候尝试传递一个对象实例(我是根据他的评论这么认为的)。下面的回答不适用。
你想要实现的就是这个吗?
class Car:
def __init__(self, driver):
self.driver = driver
class Driver:
pass
driver = Driver()
car = Car(driver)