Python 版本 2.7 不支持此语法。在 Python 2 中 super() 应有实参
时间: 2024-03-28 08:07:09 浏览: 26
对于 Python 2.7,`super()` 需要传递当前类以及当前实例作为参数。下面是在 Python 2.7 中使用 `super()` 的正确方式:
```python
class FileManagerListView(ListView):
def get_queryset(self):
queryset = super(FileManagerListView, self).get_queryset()
# 其他逻辑...
return queryset
```
同样地,在 `FileUploads_modelform` 函数中也需要传递当前类以及当前实例作为参数:
```python
def file_upload_modelform(request):
# 其他逻辑...
if form.is_valid():
try:
uploaded_file = form.save(commit=False)
# 其他逻辑...
except Exception as e:
# 错误处理逻辑...
```
请根据你的实际代码进行相应的修改,以使其兼容 Python 2.7。
如果还有其他问题,请随时提问。
相关问题
Python中在函数里通过形参改变实参的方法
在 Python 中,可以通过传递可变对象(例如列表、字典等)来在函数中改变实参的值。这是因为在 Python 中,所有的变量都是对象的引用,传递可变对象时实际上是传递了对象的引用。因此,对于可变对象,在函数中对其进行修改会影响到原始对象。
以下是一个例子:
```python
def change_list(lst):
lst.append(4)
my_list = [1, 2, 3]
change_list(my_list)
print(my_list) # 输出 [1, 2, 3, 4]
```
在上述例子中,`change_list` 函数接收一个列表作为参数,并在其中添加一个元素。在调用函数时,传递的是 `my_list` 的引用,因此在函数中对其进行修改会影响到原始列表。
需要注意的是,如果在函数中对可变对象进行重新赋值,则不会影响到原始对象。例如:
```python
def change_list(lst):
lst = [4, 5, 6]
my_list = [1, 2, 3]
change_list(my_list)
print(my_list) # 输出 [1, 2, 3]
```
在上述例子中,`change_list` 函数在内部将 `lst` 重新赋值为一个新的列表,而不是对原始列表进行修改。因此,原始列表不会受到影响。
python中实参是什么
Python中,实参是函数调用时所传递的参数,它们是函数调用时的输入值。实参可以是数字、字符串、元组、列表、字典等数据类型,也可以是其他函数。例如:
```
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 输出8
```
在上述代码中,调用`add`函数时,传递了实参`3`和`5`,它们分别被赋值给函数定义中的形参`a`和`b`,函数执行完毕后返回它们的和,赋值给了`result`变量,最后使用`print`函数输出结果`8`。
需要注意的是,实参可以是变量、表达式、或者其他函数的返回值等,它们在函数调用时将被求值。同时,实参的数量必须和函数定义中的形参数量相同,否则会抛出`TypeError`异常。