这段代码为什么会报错class patient: def __init__(self, duration): self.numpatient = None self.duratin = None patient.numpatient = 30 patient.duration = duration print(patient[2].duration)报错内容为TypeError: 'type' object is not subscriptable,其中duration=[ 66 31 27 49 58 97 69 112 55 32 38 36 81 21 226 45 70 35 55 92 89 53 27 38 41 40 82 52 114 68]
时间: 2024-02-14 22:26:41 浏览: 66
python基础进阶1.6:面向对象之类,对象及__init__(),self相关用法讲解
在你的代码中,报错`TypeError: 'type' object is not subscriptable`是因为你尝试在类`patient`上使用索引,而类本身不支持索引操作。你应该创建一个类的实例,并在实例上使用索引。
以下是修改后的代码示例:
```python
class Patient:
def __init__(self, duration):
self.duration = duration
patients = []
duration = [66, 31, 27, 49, 58, 97, 69, 112, 55, 32, 38, 36, 81, 21, 226, 45, 70, 35, 55, 92, 89, 53, 27, 38, 41, 40, 82, 52, 114, 68]
for i in range(30):
patient = Patient(duration[i])
patients.append(patient)
print(patients[2].duration)
```
在这个修改后的代码中,我们定义了一个Patient类,并创建了一个duration列表用于初始化每个患者的持续时间。在循环中,我们创建了30个Patient实例,并将它们添加到patients列表中。然后我们打印出第三个患者(索引为2)的持续时间。
请确保在使用索引之前,你有足够的元素来访问。否则,会引发`IndexError`异常。
阅读全文