例如,假设我正在为以下代码编写函数(在pandas模块中):
myData.sort_values(by=myVariable, ascending=False)
现在,我想创建一个函数,其变量为 data,变量和递增。
sort(data=mydata, variable=myvariable, ascending=False)
下面的函数给出一个错误,因为在第二行中没有给出升序是真还是假:
def sort(data,variable,ascending=False):
data.sort_values(by=variable, ascending)
尽管可以,但是我不想更改变量名称,例如:
def sort(data,variable,asc=False):
data.sort_values(by=variable, ascending=asc)
最后一种方法是在函数内部创建一个变量:
def sort(data,variable,ascending=False):
asc = ascending
data.sort_values(by=variable, ascending=asc)
,但看起来有些混乱。在这种情况下,是否有使用相同变量的替代方法?
注意:这个问题与pandas模块无关,只是一个例子。
编辑:我已经明确说明了我的问题并展示了我尝试过的方法。我不明白投票否决的原因。
答案 0 :(得分:3)
您尝试过吗:
class MainTableViewCell: UITableViewCell {
@IBOutlet weak var title: UILabel!
@IBOutlet weak var detailTableView: UITableView!
@IBOutlet weak var detailTableViewHeight: NSLayoutConstraint!
var detail:[String] = []{
didSet{
detailTableView.reloadData()
}
}
var isExpand: Bool = false{
didSet{
detailTableView.isHidden = !isExpand
detailTableView.reloadData()
detailTableViewHeight.constant = isExpand ? detailTableView.contentSize.height:0
}
}
override func awakeFromNib() {
super.awakeFromNib()
detailTableView.delegate = self
detailTableView.dataSource = self
detailTableView.isScrollEnabled = false
detailTableViewHeight.constant = 0
}
}
答案 1 :(得分:0)
下面的函数给出一个错误,因为在第二行中没有给出升序是真还是假:
def sort(data,variable,ascending=False):
data.sort_values(by=variable, ascending)
否;由于位置参数不能在关键字参数之后,因此会出现错误。就像错误消息说:SyntaxError: positional argument follows keyword argument
。
解决此问题的方法与使用ascending=ascending
的其他答案相同。想法是,函数调用的参数与当前本地变量位于单独的命名空间中。
如果“行不通”,则需要提出一个新问题,并正确解释预期结果和实际结果,并提供其他用户可以在本地进行测试的完整示例。