Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 months ago.
Improve this question
I have two files File1 and File2. In File1 I have a function detect() defined as:
def detect():
s = // some operations
I need to access this variable s in File2.
I have tried declaring the variable as global but it has not worked.
How can I access the variable without creating a class as in this post or by using __main__ as in this post ??
function detect must be run to init its local variables.
def detect():
detect.tmp = 1
def b():
print(detect.tmp)
detect()
b()
of course you can import one python file as python module and call its functions like
from File1 import detect
print(detect.tmp)
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 months ago.
Improve this question
When I run
import CardNumbers = "6045781112112478"
the interpreter says there's a SyntaxError and highlights the = sign. What else would I put there?
The syntax error arises because you're mixing two separate Python functionalities in one line: importing and variable assignment.
You can import a module defined elsewhere using Python's import machinery:
import CardNumbers
Or you can assign a variable using the assignment operator =:
CardNumbers = "6045781112112478"
I recommend that you determine which one of those things is your objective in the context of your code.
So are you trying to create a variable named CardNumbers with an integer value of 6045781112112478 because if so you shoudnt put the import statement at the start of the line of code
If you want to use DoodleVibs solution then you have to define where from you want to import CardNumbers by typingimport CardNumbers from WhereEver where WhereEver is the file you want to import CardNumbers from. I hope this helps
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
I tried searching online but did not find any answer to this particular question. In python there are no function declarations and a function can't be used until it has been defined.
Does this mean that indirect recursion is impossible in python?
And is there a way around this by using some modules?
No, it is possible
def f():
print('from f')
g()
def g():
print('from g')
f()
"a function can't be used until it has been defined" is not so straightforward. When the code runs, the name of the objects that it refers to have to exist. So, you can't do
f()
def f():...
because f() actually executes something. But definitions create a function object, without running it at the time. In the example, the function is claled at the last line of the script, and, by that time, both f, g do exist.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 3 years ago.
Improve this question
I am using Python for some operations on a XML file.
Because I am new to programming I would like to know how I can re-use the snippet below, currently it has a hard-coded statement in it.
Please look at the line with
for ERPRecord in aroot.iter('part'):
inside it, aroot should be replaced with the modular option or variable.
def SetERP(ArticleN,ERPn):
for ERPRecord in aroot.iter('part'):
if ERPRecord.get('P_ARTICLE_ORDERNR') == ArticleN:
ERPRecord.set('P_ARTICLE_ERPNR', ERPn)
I would like to have a function without hard-coded parts in so it is able to be used again in other projects. My best guess is that the sequence "aroot" will be replaced by a variable like this:
def SetERP(ArticleN,ERPn, XMLroot):
for ERPRecord in XMLroot.iter('part'):
if ERPRecord.get('P_ARTICLE_ORDERNR') == ArticleN:
ERPRecord.set('P_ARTICLE_ERPNR', ERPn)
Any advice on this would be welcome!
You could define aroot as a parameter, so you would have to pass your root in every time you call the function, if that is what you mean?
def SetERP(ArticleN, ERPn, aroot):
for ERPRecord in aroot.iter('part'):
if ERPRecord.get('P_ARTICLE_ORDERNR') == ArticleN:
ERPRecord.set('P_ARTICLE_ERPNR', ERPn)
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
Suppose I have a function -
def foo(x,y):
pass
a = foo(5,6)
How do I access the values 5 and 6 from a?
From the code you have shown us, you cannot -- 5 and 6 were passed in to foo, you didn't keep a copy of them, foo didn't keep a copy of them, so they are gone.
So, as the above paragraph hinted, somebody has to keep a copy of those arguments if you want to do something else with them later, and while it is possible to have a function do so, that's not really what they are intended for. So your easy options are:
make foo a class that saves the arguments it was called with (which is still highly unusual), or
save the arguments yourself (arg1, arg2 = 5, 6 for example)
You can't. You'd need to use an object.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I have a file (test.py):
def main():
def hello():
x = 10
Then I have another file (test2.py):
from test import *
print(main.hello.x)
Now I know that print(main.hello.x) won't work but I want something like that.
I want to access a variable inside another file that is in a nested function.
How can I do that?
This feels quite unpythonic, but this will work:
def main():
def hello():
hello.x = 10
return hello
main.hello = hello
return main
print(main.hello.x) #returns 10
a more pythonic approach is to use a class.