Hướng dẫn python print object as string - đối tượng in python dưới dạng chuỗi
Khi tôi cố gắng 6 một thể hiện của một lớp, tôi sẽ nhận được một đầu ra như thế này: Show
Làm thế nào tôi có thể xác định hành vi in (hoặc biểu diễn chuỗi) của một lớp và các trường hợp của nó? Ví dụ: tham khảo mã trên, làm thế nào tôi có thể sửa đổi lớp 7 để 6ing một thể hiện hiển thị giá trị 9?
Karl Knechtel 59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges Hỏi ngày 8 tháng 10 năm 2009 lúc 2:35Oct 8, 2009 at 2:35
Ashwin Nanjappaashwin NanjappaAshwin Nanjappa 74K79 Huy hiệu vàng208 Huy hiệu bạc291 Huy hiệu Đồng79 gold badges208 silver badges291 bronze badges 0
Phương pháp 0 là những gì được gọi là xảy ra khi bạn in nó và phương thức 1 là những gì xảy ra khi bạn sử dụng hàm 2 (hoặc khi bạn nhìn vào nó với lời nhắc tương tác).Nếu không có phương thức 0 được đưa ra, Python sẽ in kết quả của 1 thay thế. Nếu bạn xác định 0 nhưng không phải 1, Python sẽ sử dụng những gì bạn thấy ở trên là 1, nhưng vẫn sử dụng 0 để in.
Đã trả lời ngày 8 tháng 10 năm 2009 lúc 2:39Oct 8, 2009 at 2:39
Chris Lutzchris LutzChris Lutz 71.5K16 Huy hiệu vàng126 Huy hiệu bạc182 Huy hiệu Đồng16 gold badges126 silver badges182 bronze badges 7 Như Chris Lutz giải thích, điều này được xác định bằng phương pháp 1 trong lớp của bạn.Từ tài liệu của 2:
Đưa ra bài kiểm tra lớp sau:
.. nó sẽ hành động theo cách sau trong vỏ Python:
Nếu không có phương thức 0 được xác định, 4 (hoặc 5) sẽ sử dụng kết quả của 1 thay thếNếu không có phương thức 1 được xác định thì mặc định được sử dụng, tương đương với:
Karl Knechtel 59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges Hỏi ngày 8 tháng 10 năm 2009 lúc 2:35Oct 8, 2009 at 2:55
7 Ashwin Nanjappaashwin Nanjappa
74K79 Huy hiệu vàng208 Huy hiệu bạc291 Huy hiệu Đồng
Phương pháp 0 là những gì được gọi là xảy ra khi bạn in nó và phương thức 1 là những gì xảy ra khi bạn sử dụng hàm 2 (hoặc khi bạn nhìn vào nó với lời nhắc tương tác).
Nếu không có phương thức 0 được đưa ra, Python sẽ in kết quả của 1 thay thế. Nếu bạn xác định 0 nhưng không phải 1, Python sẽ sử dụng những gì bạn thấy ở trên là 1, nhưng vẫn sử dụng 0 để in.Sep 17, 2015 at 16:35
user394430user394430user394430 Đã trả lời ngày 8 tháng 10 năm 2009 lúc 2:392 gold badges26 silver badges27 bronze badges 0 Chris Lutzchris Lutz
71.5K16 Huy hiệu vàng126 Huy hiệu bạc182 Huy hiệu Đồng Như Chris Lutz giải thích, điều này được xác định bằng phương pháp 1 trong lớp của bạn.Oct 25, 2018 at 22:25
Từ tài liệu của 2:JohnĐối với nhiều loại, hàm này cố gắng trả về một chuỗi sẽ mang lại một đối tượng có cùng giá trị khi được chuyển đến 4 Đưa ra bài kiểm tra lớp sau:
.. nó sẽ hành động theo cách sau trong vỏ Python: 0Nếu không có phương thức 0 được xác định, 4 (hoặc 5) sẽ sử dụng kết quả của 1 thay thế 1Nếu không có phương thức 1 được xác định thì mặc định được sử dụng, tương đương với:Mar 14, 2018 at 15:44
1 Đã trả lời ngày 8 tháng 10 năm 2009 lúc 2:55 Một cách chung có thể được áp dụng cho bất kỳ lớp nào mà không có định dạng cụ thể có thể được thực hiện như sau: Và sau đó, 2
sản xuấtMay 20, 2016 at 14:26
Đã trả lời ngày 17 tháng 9 năm 2015 lúc 16:35PeterM 2.6652 huy hiệu vàng26 Huy hiệu bạc27 Huy hiệu đồng24 silver badges35 bronze badges 1 Nếu bạn đang ở trong một tình huống như @Keith, bạn có thể thử: 3Nó đi ngược lại những gì tôi sẽ xem xét phong cách tốt nhưng nếu bạn chỉ cố gắng gỡ lỗi thì nó sẽ làm những gì bạn muốn. 4Đã trả lời ngày 25 tháng 10 năm 2018 lúc 22:25Jan 27, 2021 at 17:01
JohnjohnAlon 1.5798 huy hiệu bạc11 huy hiệu đồng1 silver badge7 bronze badges 1 Phiên bản phản hồi đẹp hơn của @user394430
Một phiên bản thậm chí fancier (cảm ơn Ruud) sắp xếp các mục: 5Đã trả lời ngày 14 tháng 3 năm 2018 lúc 15:44 6Cho Python 3: 7Nếu định dạng cụ thể không quan trọng (ví dụ: để gỡ lỗi) chỉ kế thừa từ lớp có thể in bên dưới. Không cần phải viết mã cho mọi đối tượng.
Lấy cảm hứng từ câu trả lời nàyDec 20, 2012 at 11:27
Đã trả lời ngày 20 tháng 5 năm 2016 lúc 14:26tnotstar Petermpeterm1 gold badge15 silver badges26 bronze badges 2.19224 huy hiệu bạc35 huy hiệu đồng 8
Giản dị. Trong bản in, làm: miễn là hàm tạo là17 gold badges227 silver badges301 bronze badges Đã trả lời ngày 27 tháng 1 năm 2021 lúc 17:01Jan 16, 2013 at 9:04
flow_chartflow_chartflow_chart Alonalon1 silver badge4 bronze badges 1 1611 Huy hiệu bạc7 Huy hiệu đồng 9Chỉ để thêm hai xu của tôi vào câu trả lời của @DBR, sau đây là một ví dụ về cách thực hiện câu này từ tài liệu chính thức mà anh ấy đã trích dẫn: 0"[...] để trả về một chuỗi sẽ mang lại một đối tượng có cùng giá trị khi được chuyển đến eval (), [...]" "Mar 13, 2021 at 0:59
Đưa ra định nghĩa lớp này:minker Bây giờ, rất dễ để tuần tự hóa thể hiện của lớp Vì vậy, chạy đoạn mã cuối cùng, chúng tôi sẽ nhận được: Bạn chỉ cần đảm bảo rằng bạn có dấu ngoặc đơn ở cuối lớp, ví dụ: 1Đây là một ví dụ về mã từ một dự án tôi đang thực hiện: 2Để in lớp hydro của tôi, tôi đã sử dụng như sau: 3Xin lưu ý, điều này sẽ không hoạt động mà không có dấu ngoặc đơn ở cuối hydro. Họ là cần thiết. Hy vọng điều này sẽ giúp, hãy cho tôi biết nếu bạn có câu hỏi nữa. Đã trả lời ngày 4 tháng 8 năm 2015 lúc 4:52Aug 4, 2015 at 4:52
Mặc dù đây là một bài viết cũ hơn, nhưng cũng có một phương pháp rất thuận tiện được giới thiệu trong các dữ liệu (như Python 3.7). Bên cạnh các chức năng đặc biệt khác như 7 và 8, nó cung cấp hàm 1 cho các thuộc tính lớp. Ví dụ của bạn sau đó sẽ là: 4Nếu bạn muốn ẩn một thuộc tính nhất định khỏi được xuất ra, bạn có thể đặt tham số Trình trang trí trường 0 thành 1: 5Đã trả lời ngày 24 tháng 8 lúc 14:54Aug 24 at 14:54
Dheinzdheinzdheinz 8129 Huy hiệu bạc14 Huy hiệu đồng9 silver badges14 bronze badges Làm thế nào để bạn in một đối tượng vào một chuỗi trong Python?Python __str __ () Phương thức này trả về biểu diễn chuỗi của đối tượng. Phương thức này được gọi là hàm in () hoặc str () được gọi trên một đối tượng. Phương thức này phải trả về đối tượng chuỗi.
This method returns the string representation of the object. This method is called when print() or str() function is invoked on an object. This method must return the String object.
Chúng ta có thể chuyển đổi đối tượng thành chuỗi trong Python không?Mọi thứ là một đối tượng trong Python.Vì vậy, tất cả các đối tượng tích hợp có thể được chuyển đổi thành các chuỗi bằng các phương thức str () và repr ().all the built-in objects can be converted to strings using the str() and repr() methods.
Làm thế nào để bạn in dữ liệu của một đối tượng trong Python?Sử dụng Vars () của Python để in các thuộc tính của một đối tượng hàm Dir (), như được hiển thị ở trên, in tất cả các thuộc tính của một đối tượng Python.Giả sử bạn chỉ muốn in các thuộc tính thể hiện của đối tượng cũng như các giá trị của chúng, chúng ta có thể sử dụng hàm vars ().
The dir() function, as shown above, prints all of the attributes of a Python object. Let's say you only wanted to print the object's instance attributes as well as their values, we can use the vars() function.
Làm thế nào để bạn in một tên đối tượng trong Python?Trong Python, điều này có thể đạt được bằng cách sử dụng các phương thức __repr__ hoặc __str__.__repr__ được sử dụng nếu chúng ta cần một thông tin chi tiết để gỡ lỗi trong khi __str__ được sử dụng để in phiên bản chuỗi cho người dùng.Điểm quan trọng về in ấn: Python sử dụng phương thức __repr__ nếu không có phương thức __str__.using __repr__ or __str__ methods. __repr__ is used if we need a detailed information for debugging while __str__ is used to print a string version for the users. Important Points about Printing: Python uses __repr__ method if there is no __str__ method. |