如何在python中将一个对象引用到另一个对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中将一个对象引用到另一个对象?相关的知识,希望对你有一定的参考价值。

我还是python编程语言的新手。您能否解释一下如何将一个对象引用到另一个对象。例如,从下面的代码中,我需要向每个对象添加朋友。但是,对象的朋友就是人的对象。

即XYZ有朋友ABC,LMN,其中ABC,LMN是“人对象”。

下面是我的代码示例

class Person:
    def __init__(self,name):
        self.name = name

    def add_friend(self,friend):
        pass #friend is a reference to another person object.

if __name__ == '__main__':
    l_ist = [Person('XYZ'),Person('ABC'),Person('LMN')]
答案

类似于Person类如何具有name属性,您可以给它一个friends属性,该属性是其朋友的列表。此列表可以存储作为朋友传递的Person属性。

class Person:
    def __init__(self,name):
        self.name = name
        self.friends = []

    def add_friend(self,friend):
        self.friends.append(friend)  #friend is a reference to another person object.

if __name__ == '__main__':
    l_ist = [Person('XYZ'),Person('ABC'),Person('LMN')]
    l_ist[0].add_friend(l_ist[1])
    l_ist[0].add_friend(l_ist[2])
    print(l_ist[0].friends)
    print([f.name for f in l_ist[0].friends])
另一答案
class Person:
    def __init__(self,name):
        self.name = name
        self.friends = []

    def add_friend(self,friend):
        self.friends.append(friend)

if __name__ == '__main__':
    l_ist = [Person('XYZ'),Person('ABC'),Person('LMN')]

    x = l_ist[0]
    x.add_friend(l_ist[1].name)
    x.add_friend(l_ist[2].name)

    print(x.friends) # PRINT ['ABC', 'LMN']
另一答案

在Python中,所有内容均视为对象。要在您的代码中添加朋友,您可以添加:

l_ist [0] .add_friend(l_ist [1])

要在个人实例本身内部的列表中存储朋友,您可以添加:

self.friends = []

然后在add_friends方法内:

self.friends.add(friend)

以上是关于如何在python中将一个对象引用到另一个对象?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在他自己的方法中将一个对象取消引用到另一个对象?

如何在sequelize中将外键引用到另一个外键?

如何在 TypeScript Angular 2 中将 Json 对象数组映射到另一个普通 json 对象

如何在 C++ 中将一个对象从一个向量复制到另一个向量?

如何在 Rails 中将对象从一个控制器传递到另一个控制器?

如何将数组 id 引用到另一个集合