Python: 作为另一个对象参数的对象

3 投票
3 回答
25548 浏览
提问于 2025-04-16 02:37

我有一个模块,里面定义了两个不同的类,都是用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)

撰写回答