如何解决如何在 julia 中实现 self 和 __init__()
我想知道在 Julia 中实现 self
和 __inti__()
的正确方法是什么?
示例
class rectangle:
def __init__(self,length,breadth,height):
self.length = length
self.breadth = breadth
self.height = height
def get_area(self):
return self.length * self.breadth
r = rectangle(160,20,1000)
print("area is",r.get_area())
我在 Julia 中尝试过这个,但它既不符合操作预期,也不符合结果。
struct rectangle
length
breadth
height
end
function __init__(rectangle)
rectangle.length = length
rectangle.breadth = breadth
rectangle.height = height
end
function get_area(rectangle)
return rectangle.length*rectangle.breadth
end
data_obj = __init__()
r = get_area(data_obj)
end
请提出一种适当的方法来实现 Julia 中的 Python 示例。 提前致谢!!
解决方法
从 Python 字面上翻译的大胆举措。显然,这行不通。
但是,以下内容应该足够了:
struct Rectangle{T}
length::T
breadth::T
height::T
end
area(rectangle) = rectangle.length * rectangle.breadth
r = Rectangle(160,20,1000)
println(area(r))
(类型参数不是你要求的,而是推荐的。)
现在,如果您需要做的不仅仅是分配字段,您可以编写一个外部构造函数:
function Rectangle(l,b,h)
...
return Rectangle(l,h)
end
但是除非需要一些实际的逻辑,否则没有必要这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。