簡體   English   中英

如何將當前變量值傳遞給python函數?

[英]How can I always pass the current variable value into a python function?

我有一個項目,我希望用戶在excel表中指定輸入參數,然后使用openpyxl將其讀入類中的多個函數。 我的問題是,每當我更改工作表中的值時,我必須再次運行腳本以使更改生效。 由於我想以交互方式使用腳本並快速顯示不同的值,因此需要花費很多時間。

還有另一種方法可以將已更改的變量從工作表傳遞到函數中嗎?

這是我的代碼:

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工作表中獲取值之前,我將另一個模塊中的參數導入到主模塊中。 我在那里遇到了同樣的問題但是認為這是由import命令引起的。 我看了重裝模塊,但似乎沒有解決問題。 然后我介紹了我認為會做的功能,但沒有成功。

任何有關這方面的幫助將不勝感激,謝謝!

代碼的問題在於,在保存任何內容之前返回並且未正確使用save命令。 下面我提供了一些示例代碼,它將接受輸入,修改特定單元格,然后保存文件。 無需重新加載。 我還修改了一些變量/函數名稱,因為input是內置函數,不應該用於類名。 這只是為了向您展示如何使保存正常工作,因為我不知道您實際想要代碼執行什么。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM