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)?
One approach would be to make
oneFunctionreturn the word so that you can useoneFunctioninstead ofwordinanotherFunction:Another approach is making
anotherFunctionacceptwordas a parameter which you can pass from the result of callingoneFunction:And finally, you could define both of your functions in a class, and make
worda member:Once you make a class, you have to instantiate an instance and access the member functions: