如何在 julia 中实现 self 和 __init__()
How to implement self and __init__() in julia
我想知道在 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, b, h)
end
但是除非需要一些实际逻辑,否则没有必要这样做。
我想知道在 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, b, h)
end
但是除非需要一些实际逻辑,否则没有必要这样做。