在 Julia 中替代 OOP
Alternative to OOP in Julia
我正在尝试学习一些 Julia,所以我正在用该语言编写一些小项目。
例如,我想用 Julia 编写一个简单的感知器,但它不是面向对象的,所以我无法创建一个 class 感知器,就像 python
有什么可能的替代方法来编写 Python 中的代码?我看到有结构体,但是这个看起来像C结构体,所以我想知道是否有更强大的方法。
您正在寻找的“更强大的方式”是类型层次系统:https://docs.julialang.org/en/v1/manual/types/
在 julia 中,尽管不是 OOP,您仍然可以在定义时使用 <:
对其他类型进行子类型化(但超类型必须是 abstract type
,也有参数化类型的子类型,但它们不是用 <:
)
制作的
子类型保留其 parents 的方法特化,除非您更改它们的定义。
Julia 子类型化对抽象类型的影响之一是孩子不继承 parents 字段(因为它们根本没有)。
我正在尝试学习一些 Julia,所以我正在用该语言编写一些小项目。
例如,我想用 Julia 编写一个简单的感知器,但它不是面向对象的,所以我无法创建一个 class 感知器,就像 python
有什么可能的替代方法来编写 Python 中的代码?我看到有结构体,但是这个看起来像C结构体,所以我想知道是否有更强大的方法。
您正在寻找的“更强大的方式”是类型层次系统:https://docs.julialang.org/en/v1/manual/types/
在 julia 中,尽管不是 OOP,您仍然可以在定义时使用 <:
对其他类型进行子类型化(但超类型必须是 abstract type
,也有参数化类型的子类型,但它们不是用 <:
)
子类型保留其 parents 的方法特化,除非您更改它们的定义。
Julia 子类型化对抽象类型的影响之一是孩子不继承 parents 字段(因为它们根本没有)。