如何始终将当前变量值传递给 python 函数?
How can I always pass the current variable value into a python function?
我有一个项目,我希望用户在 excel sheet 中指定输入参数,然后使用 openpyxl 将其读入 class 中的多个函数。我的问题是,每当我更改 sheet 中的值时,我都必须再次 运行 脚本以使更改生效。因为我想以交互方式使用脚本并快速显示不同的值,所以这会花费很多时间。
是否有另一种方法始终将更改的变量从 sheet 传递到函数中?
这是我的代码:
class input:
def __init__(self, vals=None):
self.vals = vals
self.wb = load_workbook("input.xlsx", data_only = True)
self.ws = self.wb.get_active_sheet()
def get_var(self):
self.var = self.ws["B3"].value
return self.var
wb.save()
input.input()
在从 excel sheet 获取值之前,我将另一个模块中的参数导入到主模块中。我在那里遇到了同样的问题,但认为这是由导入命令引起的。我查看了重新加载模块,但似乎没有解决问题。然后我介绍了我认为可以做到但没有成功的功能。
如有任何帮助,我们将不胜感激,谢谢!
您的代码的问题在于您 return 在保存任何内容之前没有正确使用保存命令。下面我提供了一些示例代码,这些代码将接受输入、修改特定单元格,然后保存文件。无需重新加载。我还修改了一些 variable/function 名称,因为 input
是一个内置函数,不应该用于 class 名称。这只是为了向您展示如何使保存正常工作,因为我不知道您实际想要代码做什么。
import openpyxl as op
class excel:
def __init__(self, vals=None):
self.vals = vals
self.wb = op.load_workbook("sample.xlsx", data_only=True)
self.ws = self.wb.active
def set_var(self, num):
self.ws["A1"].value = num
self.wb.save('sample.xlsx')
print(self.ws["A1"].value)
excel_file = excel()
while True:
a = input()
excel_file.set_var(a)
我有一个项目,我希望用户在 excel sheet 中指定输入参数,然后使用 openpyxl 将其读入 class 中的多个函数。我的问题是,每当我更改 sheet 中的值时,我都必须再次 运行 脚本以使更改生效。因为我想以交互方式使用脚本并快速显示不同的值,所以这会花费很多时间。
是否有另一种方法始终将更改的变量从 sheet 传递到函数中?
这是我的代码:
class input:
def __init__(self, vals=None):
self.vals = vals
self.wb = load_workbook("input.xlsx", data_only = True)
self.ws = self.wb.get_active_sheet()
def get_var(self):
self.var = self.ws["B3"].value
return self.var
wb.save()
input.input()
在从 excel sheet 获取值之前,我将另一个模块中的参数导入到主模块中。我在那里遇到了同样的问题,但认为这是由导入命令引起的。我查看了重新加载模块,但似乎没有解决问题。然后我介绍了我认为可以做到但没有成功的功能。
如有任何帮助,我们将不胜感激,谢谢!
您的代码的问题在于您 return 在保存任何内容之前没有正确使用保存命令。下面我提供了一些示例代码,这些代码将接受输入、修改特定单元格,然后保存文件。无需重新加载。我还修改了一些 variable/function 名称,因为 input
是一个内置函数,不应该用于 class 名称。这只是为了向您展示如何使保存正常工作,因为我不知道您实际想要代码做什么。
import openpyxl as op
class excel:
def __init__(self, vals=None):
self.vals = vals
self.wb = op.load_workbook("sample.xlsx", data_only=True)
self.ws = self.wb.active
def set_var(self, num):
self.ws["A1"].value = num
self.wb.save('sample.xlsx')
print(self.ws["A1"].value)
excel_file = excel()
while True:
a = input()
excel_file.set_var(a)