How do instantiate a new class properly?
Background
I have created a new class FeynmanGraph
that is a subclass of Graph
. It has some extra methods, and the module in which it lives also has some extra functions. The most important method for my purposes searches for possible colorings of the vertices that satisfy certain combinatorial criteria that have to do with spanning trees. (The details are not important here.)
The code works. I should mention that I'm editing feynman.sage
in a text editor and attaching it to a sage session in a terminal. Once a I create an instance of the class via
G = FeynmanGraph(...)
everything seems to work.
Now, I created a module in which I would like to define specific graphs, with specific labeling of the vertices and edges, as well as plot positioning information. Shouldn't I be able to import the module feynman
and make definitions such as the following?
from feynman import *
def FatY(): # a particular graph
G = FeynmanGraph(...)
...
return G
When I do this, the methods for FeynmanGraph
raise all kinds of errors of the type where they don't recognize various functions, such as max
or partitions_set
.
Question
How do I structure the modules and classes so that I can instantiate the class properly?
Hi Sammy, maybe you can post up `feynman.sage` in a gist ( gist.github.com ) or something similar so that people can see what you have tried. In your stackoverflow post ( http://stackoverflow.com/q/5278911/421225 ) you were having trouble with your `__init__`, since you weren't calling the underlying `Graph.__init__`. Maybe you should have a look at some of doxdrum's posts ( doxdrum.wordpress.com ) where he steps through his work on a GR module. Also, maybe google/stackoverflow "python super init"