Python “中i的数据类型是什么?”;对于数组中的i“;

Python “中i的数据类型是什么?”;对于数组中的i“;,python,for-loop,Python,For Loop,我一直在尝试使用for循环迭代一个数组(实际上是一组数组的串联) 对于book1+book2+book3中的i: 打印i.pageno 这里的i是book类型的对象,book1、book2和book3中的对象也是 运行此代码时,我得到一个错误 AttributeError:“int”对象没有属性“pageno” 我已经在book类中定义了pageno,它已经被导入 i的类型取决于[book1..book3]的类型,我建议您检查(book1+book2+book3)的值。 如果您想知道实际类型,

我一直在尝试使用for循环迭代一个数组(实际上是一组数组的串联)

对于book1+book2+book3中的i:
打印i.pageno
这里的
i
是book类型的对象,book1、book2和book3中的对象也是

运行此代码时,我得到一个错误

AttributeError:“int”对象没有属性“pageno”


我已经在book类中定义了pageno,它已经被导入

i的类型取决于[book1..book3]的类型,我建议您检查(book1+book2+book3)的值。 如果您想知道实际类型,可以尝试类型(i),例如:

输出:

<type 'int'>
<type 'int'>
<type 'str'>


看起来您的串联数组是一个整数数组。默认情况下,整数对象没有pageno变量。

尝试搜索book*数组:

print(type(book1), type(book2), type(book3))
为什么不尝试在循环中寻找i的类型:

bs = book1 + book2 + book3
for i in bs:
    print(i, type(i))

现在,您可以发现该漏洞:-)

这意味着该iterable中的一个元素是
int
。查看
book1+book2+book3
,找到
int
值,然后找出它存在的原因以及如何消除它。如果您的代码显示book类定义,以及如何创建book实例的示例,这会有所帮助。这只是我创建的代码片段,用于演示我遇到的情况@Tomkarzes要点是在iterable中有一个
int
。你怎么可能需要帮助才能找到它?只需添加一个检查:
如果类型(i)是int:
,然后打印一个错误和任何其他可能有用的信息。问题解决了。没有人能告诉你更多的了。它确实回答了这个问题。答案可能不应该包括海报上的问题,但这个问题的答案确实是“您的串联数组是一个整数数组”(或者至少包含一个)。
bs = book1 + book2 + book3
for i in bs:
    print(i, type(i))