3

私は持っている

try:
    a = list().append('hello')

しかしa_NoneType

try:
    b = list()
    b.append('hello')

そしてタイプbですlist

list()リストオブジェクトを返すと思います。list().append('hello')戻りリストを使用して追加しますが、なぜの値はa None?

4

3 に答える 3

9

list()は確かに空のリスト ( []) を返しますが、appendメソッドはその場でリストを操作します。リスト自体を変更し、新しいリストを返しません。代わりに返しますNone

例えば:

>>> lst = []
>>> lst.append('hello')  # appends 'hello' to the list
>>> lst
['hello']
>>> result = lst.append('world')  # append method returns None
>>> result  # nothing is displayed
>>> print result
None
>>> lst  # the list contains 'world' as well now
['hello', 'world']
于 2013-03-10T10:17:25.200 に答える
2
a = list().append('hello')

上記の行は、新しいリストを作成し、append()メソッドを呼び出して、戻りコードをappend()変数に保存するだけですa。値がであるため、メソッドに戻り値がないことNoneを意味します。append()

これを確認するには、これを試すことができます:

>>> a = list()
>>> result = a.append('hello')
>>> print a
['hello']
>>> print result
None
于 2013-03-10T10:19:17.143 に答える
2

あなたはすでにあなたの質問に対する答えを得ていますが、あなたがやろうとしていることを行うための最良の方法はどちらでもないことを指摘したいと思います. そのはず:

a = [ 'hello' ]
于 2013-03-10T10:54:55.953 に答える