Q:

Is there any way to do this without using '__init__'?

class a(object):
    c=b()# how to call the b method 
    d=4
    def __init__(self):
        print self.c
    def b(self):
        return self.d+1

a()

how to call the 'b' method not in the __init__ 
thanks
the error is :
Traceback (most recent call last):
  File "D:\zjm_code\a.py", line 12, in <module>
    class a(object):
  File "D:\zjm_code\a.py", line 13, in a
    c=b()# how to call the b method 
NameError: name 'b' is not defined

A:

I would use a property instead:
class a(object):
    d=4
    def __init__(self):
        print self.c
    def b(self):
        return self.d+1
    c = property(b)

a()
a.c # returns a.b()

