Thanks Jeffrey. So, should I close this post and ask a new question as you 
suggested?

On Saturday, 27 August 2016 11:27:32 UTC+2, Jeffrey Sarnoff wrote:
>
> In an object-oriented language, an instance of a class is an element of 
> computation (1 is an instance of the class Integer, and Integer is a 
> subclass of Number).
> In a type-guided language, a realization of a type is an element of 
> computation (1 is a realization of type Int, and type Int is a subtype of 
> Integer and of Number).
> The work done through the use of classes is taken up through types and 
> methods defined on/over types.  There is no "better" general alternative 
> for translating class-based design than applying Julia's types and methods. 
>  A better question: "How should I define PhysicalNodes in Julia differently 
> than I did in Python?"
>
>
>
>
>
>
> On Saturday, August 27, 2016 at 2:52:24 AM UTC-4, [email protected] wrote:
>>
>> What are the alternatives to using classes in Julia apart from types? Can 
>> you please explain how I can define the PhysicalNodes class in Julia the 
>> same way like I did in python?
>>
>> On Friday, 26 August 2016 23:16:39 UTC+2, Cedric St-Jean wrote:
>>>
>>> It's not possible in Julia at the moment. There's an issue for it. 
>>> <https://github.com/JuliaLang/julia/issues/269> I think the main 
>>> options are:
>>>
>>> - Don't declare the types. This may make it slower, but depending on the 
>>> use case it might not be a big deal
>>> - Use parametric types, i.e.
>>>
>>> type Node{T}
>>>    edges::Vector{T}
>>> end
>>>
>>> type Edge{T}
>>>    node::T
>>> end
>>>
>>>
>>>
>>> On Friday, August 26, 2016 at 1:38:38 PM UTC-4, [email protected] wrote:
>>>>
>>>> Hello all,
>>>>
>>>> I'm making a transition from Python to Julia and in the process, I've 
>>>> encountered a small difficulty. While in python, i declared three classes 
>>>> as follows:
>>>>
>>>> class PHY_NODES:
>>>>     def __init__(self, nodeID, nodenum, x, y, demands):
>>>>         self.id = nodeID
>>>>         self.nodenum = nodenum
>>>>         self.x = x
>>>>         self.y = y
>>>>         self.inEdges = []
>>>>         self.outEdges = []
>>>>         self.demands = demands
>>>>
>>>>     def __str__(self):
>>>>         return "Physical Node ID: nodenum: %4d x: %.3f y: %.3f" %(
>>>> self.id, self.nodenum, self.x, self.y )
>>>>
>>>>     def addInEdge(self, edge):
>>>>         self.inEdges.append( edge )
>>>>
>>>>     def addOutEdge(self, edge):
>>>>         self.outEdges.append( edge )
>>>>
>>>>         
>>>> class PHY_LINKS:
>>>>     def __init__(self, linkID, source, destination, SourceID, 
>>>> DestinationID,):
>>>>         self.linkID = linkID
>>>>         self.source = source
>>>>         self.destination = destination
>>>>         self.SourceID = SourceID
>>>>         self.DestinationID = DestinationID
>>>>
>>>>         
>>>>     def __str__(self):
>>>>         return "Physical Link ID: %4d source: %s destination: %s 
>>>> SourceID: %4d DestinationID: %4d " %(self.linkID, self.source, 
>>>> self.destination, self.SourceID, self.DestinationID, )
>>>>
>>>>
>>>> class DEMAND:
>>>>     def __init__(self, PoP_bdw_up, PoP_stor, PoP_pro, MME_bdw_up, 
>>>> MME_stor, MME_pro,demandID):
>>>>         self.PoP_bdw_up = PoP_bdw_up
>>>>         self.PoP_stor = PoP_stor
>>>>         self.PoP_pro = PoP_pro
>>>>         self.MME_bdw_up = MME_bdw_up
>>>>         self.MME_stor = MME_stor
>>>>         self.MME_pro = MME_pro
>>>>         self.demandID = demandID
>>>>
>>>>         
>>>>     def __str__(self):
>>>>         return " PoPbdwup: %.3f PoPstor: %.3f PoPpro: %.3f MMEbdwup: 
>>>> %.3f MMEstor: %.3f MMEpro: %.3f, self.demandID )
>>>>
>>>> However, I have some trouble when replicating the same in Julia 
>>>> especially due to the nested classes in PHY_NODES (self.inEdges as well as 
>>>> self,demands)
>>>>
>>>> The Julia version of the Phy_Node class is as below:
>>>>
>>>> type PhysicalNodes
>>>>     ID:Int
>>>>     name:String
>>>>     x: Float
>>>>     y:Float
>>>>     inEdges: ?
>>>>     outEdges: ?
>>>>     demands: ?
>>>> end
>>>>
>>>> I don't how to declare the inEdges, outEdges and demands here. Could 
>>>> you please help me with this?
>>>>
>>>>

Reply via email to