在python中,如何将某个变量的前一个值存储在另一个变量中?
我想通过将其存储在另一个变量中,来访问other函数中先前的在python中,如何将某个变量的前一个值存储在另一个变量中?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我想通过将其存储在另一个变量中,来访问other函数中先前的num1。 我尝试了很多方法,但都没有成功;你们能帮帮我吗 import random num2 = 3 def token(): global num2 print (num2) #It should print previous value of num1 (it is not giving previous value but giving me the same value with num1 eve
num1
。
我尝试了很多方法,但都没有成功;你们能帮帮我吗
import random
num2 = 3
def token():
global num2
print (num2) #It should print previous value of num1 (it is not giving previous value but giving me the same value with num1 every time )
num1 = random.randint(40,90)
print(num1)
num2= num1
def vcode():
print(num2) #want to access here the previous value of num1
print(token(),vcode())
在更改
num1
的值之前,需要将num1
复制到num2
。以下代码将打印该值和上一个值几次。请注意,我从函数中删除了print
stations,并添加了return
值;您试图在主程序中使用返回值,但实际上没有返回任何内容
随机导入
num1=3
def令牌():
"""
生成并返回num1的新值,以及
将上一个值保存为num2
"""
全球num1,num2
num2=num1
num1=random.randint(40,90)
返回num1
def vcode():
"""
返回num2的现有值(哪个标记()
保存为num1的上一个值)
"""
返回num2
打印(令牌(),vcode())
打印(令牌(),vcode())
打印(令牌(),vcode())
这使得:
46 3
63 46
51 63
顺便说一句,实现这一点更方便的方法可能是使用一个类,像这样,而不是使用全局变量。类实例包含当前值和上一个值
import random
class Token():
def __init__(self, starting_value):
self.num1 = starting_value
self.num2 = None
def get_value(self):
self.num2 = self.num1
self.num1 = random.randint(40,90)
return self.num1
def get_previous_value(self):
return self.num2
t = Token(3)
for _ in range(3):
print(t.get_value(), t.get_previous_value())
同样,这给出了类似的结果:
72 3
69 72
80 69
您可以访问其他函数的值。一种方法(如下所示)是,您应该从一个函数返回值,然后通过调用此函数在另一个函数中访问该值:
import random
num2 = 3
def token():
global num2
print (num2)
num1 = random.randint(40,90)
print(num1)
num2= num1
return num2
def vcode():
num2=token()
print(num2)
print(token(),vcode())
当我复制并粘贴此代码并反复调用
token()
时,它的行为似乎与我预期的一样。它打印3,然后是一个随机数;然后,它打印来自上一次调用的随机数和一个新的随机数;等等看起来num2实际上在维护“上次调用token()
时num1是什么”。它应该做什么不同的事情呢?我的django项目也有类似的问题。我今天问了一个问题,但我没有得到任何人的回答。检查一下这个问题,也许你们可以回答。谢谢,也许吧。这个问题的链接是什么?顺便问一下,你能告诉我如何从一个类函数访问另一个类函数的变量吗?如果你的变量被保存为实例变量(在本例中是self.num1
和self.num2
),那么它们可以在不同的函数之间访问。但是,如果一个变量是某个函数的局部变量,则无法在另一个函数中访问它,即使这两个函数都是同一类的方法。