以下声明是否有所不同?
l1=list
l2=list()
当我使用 type()函数时,结果如下!
type(l1)
<class 'type'>
type(l2)
<class 'list'>
l1 is l2
False
这些可能表明l1和l2不相同。为什么l1属于班级类型而不是班级列表
答案 0 :(得分:2)
l1 = list
表示在list
变量中分配l1
类。
l2=list()
会调用list()
函数来创建list
并将列表分配给l2
变量。
答案 1 :(得分:1)
调用list
时,将获得它的实例:
>> l = list()
>> l
[]
但是当您将list
分配给另一个变量时,您会将所有List
信息完全转换为另一个变量,并且可以像使用List
一样使用它们,例如:>
>> a = List
>> l1 = a() # same as l1 = List()
>> l1
[]
>> a
List
>> isinstance(l1, a)
True
>> isinstance(l1, List)
True
我希望这可以帮助您理解。
答案 2 :(得分:0)
在Python中,除非您要求使用括号将其调用,否则不会调用任何东西。即使没有参数。没有括号,您只是在指函数,方法,类或任何值。 (这与其他语言(例如Ruby或Perl)不同。)
对于函数或方法,这可能会更加明显:
>>> input
<function input>
>>> abs
<function abs>
>>> 'abc'.upper
<function str.upper>
…但是与类完全相同:
>>> list
list
这些都是非常好的值,我们甚至可以将其存储在变量中:
>>> abcupper = 'abc'.upper
当您调用函数或方法时,您会知道它的作用。调用类时,这就是构造类实例的方式。
无论哪种方式,都需要括号:
>>> abs(-2)
2
>>> list((1, 2, 3))
[1, 2, 3]
…即使没有参数:
>>> 'abc'.upper()
'ABC'
>>> list()
[]
…即使您正在调用先前存储在变量中的方法:
>>> abcupper()
'ABC'