我有以下简单的功能:
extension UIView {
func toImage() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.mainScreen().scale)
drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
如果我访问变量def divide(x, y):
quotient = x/y
remainder = x % y
return quotient, remainder
x = divide(22, 7)
,我得到:
x
有没有办法只获得商或余数?
答案 0 :(得分:3)
你实际上是在返回一个元组,这是一个我们可以索引的可迭代元素,所以在上面的例子中:
print x[0]
将返回商和
print x[1]
将返回余数
答案 1 :(得分:2)
您有两个广泛的选择:
修改函数以根据需要返回其中一个或两个,例如:
def divide(x, y, output=(True, True)):
quot, rem = x // y, x % y
if all(output):
return quot, rem
elif output[0]:
return quot
return rem
quot = divide(x, y, (True, False))
保持函数不变,但显式忽略其中一个或另一个返回值:
quot, _ = divide(x, y) # assign one to _, which means ignore by convention
rem = divide(x, y)[1] # select one by index
我强烈推荐后一种配方之一;它的很多更简单!
答案 2 :(得分:1)
您可以在调用方法时解压缩返回值:
x, y = divide(22, 7)
或者你可以抓住第一个返回值:
x = divide(22, 7)[0]