我遇到了一个问题,因为我必须多次运行相同的函数,并且希望每次运行都记录一个总计。
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
}
}
向变量问好并尝试使其变为+ =无效。我可以做些简单的事情来有效地增加收益吗?
答案 0 :(得分:1)
向变量问好并尝试使其变为+ =无效。我可以做些简单的事情来有效地增加收益吗?
您不能只将函数返回的元组元素添加到左侧的元组元素中。您有以下选择:
total_hello
和total_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)
请参阅this答案以了解更多Python语言。
在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)
您可以在函数内部直接使用hello
和world
。
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)