img = self.transform(img) TypeError: __init__() takes 1 positional argument but 2 were given
时间: 2023-12-05 09:31:57 浏览: 233
这个错误是因为在调用self.transform(img)时传入了两个参数,但是transforms类的__init__()函数只接受一个位置参数。根据给出的引用内容,transforms.Compose是一个transforms的组合类,它接受一个transforms列表作为参数。而transforms.ToTensor()和transforms.Normalize()都是transforms类的实例,它们被包含在transforms.Compose中。所以,应该将transforms.ToTensor()和transforms.Normalize()放入一个列表中,然后再将这个列表作为参数传递给transforms.Compose。
相关问题
self.child = Child(self.serial) TypeError: __init__() takes 1 positional argument but 2 were given
这个错误通常是由于在实例化Child类时,传递了多余的参数导致的。根据错误提示信息,可以看到Child类的构造函数只接受一个参数,但是在实例化Child类时,却传递了两个参数,因此会出现这个错误。
解决这个问题的方法是检查实例化Child类时传递的参数,确保只传递一个参数。如果你确定只传递了一个参数,那么可以检查Child类的构造函数是否正确定义,确保只接受一个参数。
以下是一个示例代码,演示了如何正确地将串口对象传递给Child类:
```python
import serial
class Main:
def __init__(self):
self.serial = serial.Serial('COM1', 9600)
self.child = Child(self.serial) # 将串口对象传递给Child类的构造函数
class Child:
def __init__(self, serial):
self.serial = serial
def read_data(self):
data = self.serial.read()
return data
```
在上面的代码中,Main类的构造函数中创建了一个串口对象,并将其作为参数传递给了Child类的构造函数。注意Child类的构造函数只接受一个参数,即串口对象serial。在Child类的方法中,使用了保存在self.serial属性中的串口对象进行读取操作。
报错:admin = models.ForeignKey(TypeError: __init__() missing 1 required positional argument: 'on_delete'
这个报错提示缺少一个必需的参数'on_delete',在ForeignKey中必须指定on_delete参数,表示当关联对象被删除时的处理方式。
例如:
```
class MyModel(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
```
在这个例子中,当关联的User对象被删除时,将会级联删除MyModel对象。你可以根据具体情况选择其他的on_delete处理方式,比如设置为models.SET_NULL、models.PROTECT等。
修改代码中的ForeignKey定义,指定on_delete参数即可。
阅读全文