Skip to content Skip to sidebar Skip to footer

Python: How Can I Use Variable From Main File In Module?

I have 2 files main.py and irc.py. main.py import irc var = 1 func() irc.py def func(): print var When I try to run main.py I'm getting this error NameError: global name 'va

Solution 1:

Don't. Pass it in. Try and keep your code as decoupled as possible: one module should not rely on the inner workings of the other. Instead, try and expose as little as possible. In this way, you'll protect yourself from having to change the world every time you want to make things behave a little different.

main.py

import irc
var = 1func(var)

irc.py

def func(var):
    printvar

Solution 2:

Well, that's my code which works fine:

func.py:

import __main__
def func():
    print(__main__.var)

main.py:

from funcimportfuncvar="It works!"func()var="Now it changes!"func()

Solution 3:

Two options.

from main importvar

def func():
    printvar

This will copy a reference to the original name to the importing module.

import main

def func():
    print main.var

This will let you use the variable from the other module, and allow you to change it if desired.

Solution 4:

Well, var in the function isn't declared. You could pass it as an argument. main.py

import irc
var = 1func(var)

irc.py

deffunc(str):
    printstr

Solution 5:

What Samir said works for Python 2

For python 3 you need to do it this way.

main.py

import irc
from irc importfuncvar = 1func(var)
irc.py

irc.py

def func(var):
    print(var)

Post a Comment for "Python: How Can I Use Variable From Main File In Module?"