Tại sao công việc này -Tại sao [] .append() không hoạt động trong python?
a = []
a.append(4)
print a
Nhưng điều này không -
print [].append(4)
Sản lượng trong trường hợp thứ hai là None
. Bạn có thể giải thích đầu ra không?
Tại sao công việc này -Tại sao [] .append() không hoạt động trong python?
a = []
a.append(4)
print a
Nhưng điều này không -
print [].append(4)
Sản lượng trong trường hợp thứ hai là None
. Bạn có thể giải thích đầu ra không?
Phương thức append
không có giá trị trả về. Nó thay đổi danh sách tại chỗ, và kể từ khi bạn không chỉ định các []
cho bất kỳ biến, nó chỉ đơn giản là "bị mất trong không gian"
class FluentList(list):
def append(self, value):
super(FluentList,self).append(value)
return self
def extend(self, iterable):
super(FluentList,self).extend(iterable)
return self
def remove(self, value):
super(FluentList,self).remove(value)
return self
def insert(self, index, value):
super(FluentList,self).insert(index, value)
return self
def reverse(self):
super(FluentList,self).reverse()
return self
def sort(self, cmp=None, key=None, reverse=False):
super(FluentList,self).sort(cmp, key, reverse)
return self
li = FluentList()
li.extend([1,4,6]).remove(4).append(7).insert(1,10).reverse().sort(key=lambda x:x%2)
print li
tôi không quá tải tất cả các phương pháp trong câu hỏi, nhưng khái niệm này nên được rõ ràng.
Phương pháp append
trả về không có giá trị, hay nói cách khác sẽ chỉ được None
a
là có thể thay đổi và giá trị của nó được thay đổi, không có gì để được trả lại có.
trả lại bổ sung None
.
từ ví dụ của bạn:
>>> print a.append(4)
None
nếu bạn làm in a.append (4), bạn cũng có được Không –
Whew! Cộng đồng Python nhanh và cực kỳ hữu ích. :-) Cảm ơn các bạn. –