在Python中将两个类相互链接的正确方法是什么

斯文

我在python中编写蛇编码以进行练习。因此,我必须上课:Field()而且Snake()我必须从SnakeinField以及其他方面获取属性

我这样做

if __name__ == "__main__":
  snake=Snake()
  field=Field(snake)
  snake.field = field

在字段中使用__ init __:

def __init__(self, snake):
  self.snake = snake

这是这样做的“正确”方法,还是有更好或更普遍的方法?

布布

如果两个类必须相互引用,那么可以通过以下一种更好的方法来确保:

class Snake:
    def set_field(self, field):
        self.field = field


class Field:
    def __init__(self, snake):
        self.snake = snake
        snake.set_field(self)

snake = Snake()
field = Field(snake)

您现在不再需要显式地编码,snake.field = field因为现在当您使用Field对象的实例构造Snake对象时,Field构造函数将确保Snake使用返回该Field对象的引用来初始化该对象。问题的关键是必要的初始化代码应放置在构造函数,即__init__方法,以及因为有之间的关系Field,并Snake认为是双向的,使它在代码中明确。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无需额外代码即可链接两个独立类的最通用方法是什么?

比较两个Pair <?,?>的正确方法是什么?

在简单注入器中将两个接口注册为单例的类的行为是什么

在Python中将两个数字转换为一个数字的最有效方法是什么?

在python中将两个项目列表相互求和的最快方法

在python中将两个自变量相互分配的问题

两个类/表之间的联接的正确的Hibernate Query语法是什么?

用一个域名设置两个IP的正确方法是什么?

两个模板类相互调用方法

在 immutable.js 中将两个以上的集合相交的最佳方法是什么?

什么是正确的方法/可以链接两个AngularJs服务调用,然后对返回的数据执行功能?

让两个容器相互链接

使用GSON比较两个JSON字符串的正确方法是什么?

在两个https网站之间打开jQuery $ .ajax连接的正确方法是什么?

在php中比较两个日期的正确方法是什么?

golang在两个uint值上使用math.max的正确方法是什么?

用两个可能的父级创建房间实体的正确方法是什么?

在Go中找到两个整数之间的最小值的正确方法是什么?

调用交换两个值的FFI函数的正确方法是什么?

在 gremlin 中“连接”图形的两个节点的正确方法是什么?

对两个Spark RDD(在PySpark中)进行半联接的正确方法是什么?

使用 LINQ 检查匹配属性的两个集合迭代的正确方法是什么?

呈现两个异步更新的值的正确方法是什么?

组织同一模型的两个不同视图的正确方法是什么?

在两个以上的表中使用 sql join 的正确方法是什么?

链接两个类

python中两个嵌套的for循环的结果,保存列表的正确位置是什么?

两个函数或两个类如何在python中相互调用

在两个相关的类中使用继承的最佳方法是什么