How to use a variable defined inside one function from another function?
function, python, variables
Solution
One approach would be to make `oneFunction` return the word so that you can use `oneFunction` instead of `word` in `anotherFunction` :
def oneFunction(lists):
category = random.choice(list(lists.keys()))
return random.choice(lists[category])
def anotherFunction():
for letter in oneFunction(lists):
print("_", end=" ")
Another approach is making `anotherFunction` accept `word` as a parameter which you can pass from the result of calling `oneFunction`:
def anotherFunction(words):
for letter in words:
print("_", end=" ")
anotherFunction(oneFunction(lists))
And finally, you could define both of your functions in a class, and make `word` a member:
class Spam:
def oneFunction(self, lists):
category=random.choice(list(lists.keys()))
self.word=random.choice(lists[category])
def anotherFunction(self):
for letter in self.word:
print("_", end=" ")
Once you make a class, you have to instantiate an instance and access the member functions:
s = Spam()
s.oneFunction(lists)
s.anotherFunction()
Problem
If I have this: ``` def oneFunction(lists): category=random.choice(list(lists.keys())) word=random.choice(lists[category]) def anotherFunction(): for letter in word: #problem is here print("_",end=" ") ``` I have previously defined `lists`, so `oneFunction(lists)` works perfectly. My problem is calling `word` in line 6. I have tried to define `word` outside the first function with the same `word=random.choice(lists[category])` definition, but that makes `word` always the same, even if I call `oneFunction(lists)`. I want to have a different `word` every time I call the first function and then the second. Can I do this without defining that `word` outside the `oneFunction(lists)`?