cuốn sách gpt4 ai đã làm

python - In __str__ các phần tử trong danh sách

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 00:23:23 25 4
mua khóa gpt4 Nike

tôi đã học được __str__Đầu ra của chuỗi đối tượng có thể được xác định.

例子:

lớp Người (đối tượng):
def __init__(bản thân, tên):
self.name = tên
chắc chắn __str__(tự):
return self.name

p1 = Người('Steve Jobs')
p2 = Người('Bill Gates')
p3 = Người('Mark Zuckerberg')

print(p1) # >>> Steve Jobs

nó xuất ra Steve JobsNhư tôi mong muốn, không<__main__.Person đối tượng tại 0x10410c588>

Tuy nhiên, nếu tôi tạo một danh sách:

lst = [p1, p2, p3]
in(lst)
# >>> [<__main__.Đối tượng Person tại 0x1045433c8>, <__main__.Đối tượng Person tại 0x1045434e0>, <__main__.Đối tượng Person tại 0x104543550>]

Tôi phải:

print([i.__str__() for i in lst])
# >>> ['Steve Jobs', 'Bill Gates', 'Mark Zuckerberg']

Làm cho nó hoạt động? ?

Điều đó không có nhiều ý nghĩa, phải không?

câu trả lời hay nhất

danh sách.__str__ sử dụng đối tượng __repr__ Xây dựng chuỗi. Vì vậy, chỉ cần thay đổi __repr__ ủy quyền cho __str__:

Trong [1]: lớp Người(đối tượng):
...: def __init__(tự, tên):
...: self.name = tên
...: def __str__(self):
...: trả về self.name
...: def __repr__(self):
...: trả về str(self)
...:
...: p1 = Người('Steve Jobs')
...: p2 = Người('Bill Gates')
...: p3 = Người('Mark Zuckerberg')
...:

Trong [2]: in(p1)
Steve Jobs

Trong [3]: lst = [p1, p2, p3]
...:

Trong [4]: ​​​​print(lst)
[Steve Jobs, Bill Gates, Mark Zuckerberg]

biên tập

Nếu bạn muốn tuân theo quy ước, hãy làm như sau:

Trong [18]: lớp Người(đối tượng):
...: def __init__(tự, tên):
...: self.name = tên
...: def __str__(self):
...: trả về self.name
...: def __repr__(self):
...: return f"{type(self).__name__}({self.name})"
...:

Trong [19]: p1 = Person('Steve Jobs')

Trong [20]: print([p1])
[Người(Steve Jobs)]

Về python - in __str__ các phần tử trong danh sách, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/48371526/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress