我有一個這樣定義的自定義類:
class points:
def __init__(self, x=0, h=0, l=0):
self.x = x
self.h = h
self.l = l #bool location, 0 for start point, 1 for endpoint
在我的代碼中,我成功地構建了這些串列,points當我嘗試以下條件時出現錯誤:
for i in points_list:
if (sorted_points[i].l == 0):
Python 認為它sorted_points[i].l不是整數或切片(它認為它是一個points物件),但它唯一可以是整數(我什至嘗試列印出sorted_points l值串列,它們都是 1 或 0),所以我我很困惑。
uj5u.com熱心網友回復:
for el in my_list語法迭代my_list. 看:
class A:
pass
l = [A(), A(), A()]
for el in l:
print(type(el)) # <class '__main__.A'>
所以在你的情況下,你應該使用你的i作為點的實體。
for i in points_list:
if i.l == 0: # if it's boolean, you should even write if not i.l
...
如果要迭代索引,請使用range
for i in range(len(points_list)):
if not sorted_points[i].l:
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462504.html
下一篇:使用介面或類定義變數
