0

I'd like to set up something like this:

a=0
class b:
 def__init__(self, foo):
  self.foo = foo
def create():
 global a
 a=a+1
 a=b("FOO")

Where the number 1 will define the instance (I'm not sure if define is the write word, whatever you put before the equals sign when your creating an instance)

The problem is, I can't. Obviously a would identify the instance instead of 1. I tried using dictionaries, but again the computer took it leterally - d{x} was the identity, not 1. Any suggestions?

Edited by happygeek: fixed formatting

2
Contributors
1
Reply
2
Views
10 Years
Discussion Span
Last Post by jrcagle
0

Well, I'm a little confused. In this case, do you want to create an instance of class b with foo == 1?

If so, then you would do this:

class b:
   def __init__(self, foo)
       self.foo = foo

a = b(foo=1)  # Create instance of b class, assign it to a.

or even shorter,

a = b(1)  # Python will automagically assign self = b and foo = 1.

Some other thoughts:

(1) It's best to make all your classes the 'new style' class

class b(object): # this inherits from Python's 'object' base class

rather than

class b:

because it will allow things like public properties. You need something like Python 2.3 or higher to use new-style classes.

(2) By convention, class names are capitalized.

class B(object):

(3) Global variables are like garlic: best used sparingly.

Hope it helps,
Jeff

Edited by happygeek: fixed formatting

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.