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? >> >>
