使变量根据返回值更新其值

时间:2020-04-20 04:46:43

标签: python function return

我遇到了一个问题,因为我必须多次运行相同的函数,并且希望每次运行都记录一个总计。

    import UIKit

    class BugetBalanceCell: UITableViewCell {

    @IBOutlet weak var budgetBalanceText: UILabel!

    var incomes: [Income] = []
    var expenses: [Expense] = []




    override func awakeFromNib() {
        super.awakeFromNib()

     let incomeTotal = incomes.map({Double($0.amount) ?? 0}).reduce(0, +)
     let expenseTotal = expenses.map({Double($0.amount) ?? 0}).reduce(0, +)

     let balance = incomeTotal - expenseTotal


    }




    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
    }

向变量问好并尝试使其变为+ =无效。我可以做些简单的事情来有效地增加收益吗?

2 个答案:

答案 0 :(得分:1)

向变量问好并尝试使其变为+ =无效。我可以做些简单的事情来有效地增加收益吗?

您不能只将函数返回的元组元素添加到左侧的元组元素中。您有以下选择:

  1. 变量(total_hellototal_world)是函数的局部变量,每次您将函数调用到0时,变量都会重新分配。尝试将它们移出您的功能,并使其全局。它们可用于存储变量的计数。
# Code in Module 1:
total_hello=0
total_world=0

def add(word):
    global total_hello, total_world
    if word=="hello":
       total_hello+=1
    elif word=="world":
       total_world+=1

    return total_hello, total_world


# Code in Module 2:
# from Module1 import *
add("hello")
add("world")
hello, world = add("hello")
print(hello)
print(world)

  1. 请参阅this答案以了解更多Python语言。

  2. 在Python中使用default arguments

def add(word, total_world=[0], total_hello=[0]):
    if word == "hello":
       total_hello[0] += 1
    elif word == "world":
       total_world[0] += 1

    return total_hello[0], total_world[0]


add("hello")
add("world")
hello, world = add("hello")
print(hello)
print(world)

答案 1 :(得分:1)

您可以在函数内部直接使用helloworld

hello=0
world=0
def add(word):
    global hello, world
    if word=="hello":
       hello+=1
    elif word=="world":
       world+=1

    print(hello)
    print(world)

add("hello")
add("world")
add("hello")

print(hello)
print(world)