Calling a variable inside a function of another class

Steven D'Aprano steve+comp.lang.python at pearwood.info
Sat Jan 7 11:01:22 EST 2012


On Sat, 07 Jan 2012 07:00:57 -0800, Yigit Turgut wrote:

> I am trying to call a variable located in a function of a class from
> main but couldn't succeed.Any ideas?

You cannot access local variables from outside their function. That's why 
they are called *local* variables.

You probably want to access *attributes* of the class or the instance. 
You have to define them first -- you can't access something that doesn't 
exist.

class Test:
    shared = 42  # Shared, class attribute
    def __init__(self):
        self.dt = 23  # Instance attribute, not shared.


print(Test.shared)  # prints 42

However, print(Test.dt) fails because no instance has been created yet, 
and so there is no dt attribute. You have to create an instance first, 
then __init__ will run and create the attribute:

instance = Test()
print(instance.dt)  # prints 23



-- 
Steven



More information about the Python-list mailing list