Nói về các hàm tích hợp trong Python, hãy xem thêm một hàm nữa. Hôm nay, chúng ta sẽ nói về Python repr, kết thúc bằng một số ví dụ để đưa điểm về nhà Ngoài ra, chúng ta sẽ thảo luận về Python str vs repr. Hơn nữa, chúng ta sẽ thấy làm việc với các đối tượng lớp. Show
Vì vậy, hãy bắt đầu Hàm repr Python. Hy vọng bạn thích lời giải thích của chúng tôi Chức năng repr Python với ví dụ repr() trong Python là gì?Hãy hỏi IDLE Chức năng repr Python là gì Điều này cho chúng ta biết năm điều
lặp lại (đối tượng, /)
Bây giờ, tuyên bố cuối cùng này có nghĩa là gì? >>> s='Hello' >>> eval(repr(s)) đầu ra 'Xin chào' >>> s đầu ra ‘Xin chào’ Còn số nguyên thì sao? >>> x=7 >>> eval(repr(x))==x True Bây giờ, theo tài liệu chính thức của Python, repr() trả về một chuỗi chứa biểu diễn có thể in được của một đối tượng. Đối với hầu hết các loại trong Python, điều này sẽ cung cấp cho bạn một chuỗi mang lại một đối tượng có cùng giá trị như khi chúng ta chuyển nó tới eval(). Đối với một số loại khác, nó trả về một chuỗi được phân cách bằng dấu ngoặc nhọn Cái này chứa loại đối tượng và thông tin khác như tên và địa chỉ của đối tượng đó Đối với chúng tôi, đây là hàm repr(). Đối với Python, đây là một lớp kiểm soát những gì nó trả về cho các thể hiện của nó thông qua phương thức ma thuật __repr__() Ví dụ đại diện PythonHãy lấy một ví dụ về hàm repr Python >>> msg='Hello, world!' >>> repr(msg) đầu ra "'Chào thế giới. ’” Nhìn kỹ hơn điều này cho chúng ta biết điều này trả về 'Xin chào, thế giới. ' trong dấu ngoặc kép. Nếu chúng ta chuyển cái này trở lại eval, nó sẽ cho chúng ta >>> eval("'Hello, world!'") đầu ra 'Chào thế giới. ’ Điều này sẽ không làm việc >>> eval('Hello, world!') đầu ra Traceback (most recent call last):File “ eval('Xin chào, thế giới. ’) File “ Chào thế giới ^ Lỗi cú pháp. EOF không mong muốn trong khi phân tích cú pháp Điều này là do chúng tôi không có biến có tên đó (Xin chào, thế giới. ) Làm việc với các đối tượng lớpChúng tôi đã nói repr() nội bộ thực hiện cuộc gọi đến phương thức __repr__(). Hãy thử điều này với một trong các lớp của chúng ta >>> class Color: color='orange' def __repr__(self): return repr(self.color) >>> o=Color() >>> repr(o) đầu ra "'trái cam'" Ở đây, chúng ta ghi đè phương thức __repr__() để nó làm những gì chúng ta muốn. Khi chúng ta nói từ override, lưu ý rằng Color đã có phương thức __repr__(). Điều này là do nó kế thừa từ đối tượng lớp và đối tượng có một . >>> issubclass(Color,object) đầu ra Thật ________số 8_______đầu ra ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', ' Hãy nhớ khi bắt đầu, chúng tôi đã nói repr trả về một chuỗi trong dấu ngoặc nhọn đối với một số loại? >>> class Orange: def __init__(self,color,size): self.color=color self.size=size >>> o=Orange('orange',7) >>> o đầu ra <__chính__. Đối tượng màu cam tại 0x02C6C1D0> >>> s0 đầu ra <__chính__. Đối tượng màu cam tại 0x02C6C1D0> Đây là các chuỗi có tên lớp và id của thể hiện đối tượng (địa chỉ bộ nhớ của nó trong CPython). Để in cái này tốt hơn, chúng ta sử dụng thông tin mà hàm print() gọi phương thức __str__ dunder/ >>> s1 đầu ra <__chính__. Đối tượng màu cam ở 0x02D40E70> >>> s0 đầu ra tôi 7 tuổi và màu da cam Điều đó thật tuyệt. Trong Java, chúng ta sẽ sử dụng phương thức toString() cho việc này str() so với repr() trong PythonCả hai phương thức __str__() và __repr__() đều trả lại cho chúng ta các chuỗi. Vì vậy, những gì phân biệt chúng?
Lấy một ví dụ để đảm bảo bạn hiểu sự khác biệt >>> s3 đầu ra Xin chào >>> s4 đầu ra 'Xin chào'
Muốn chuẩn bị cho Phỏng vấn Python – Bấm vào đây >>> Hãy xem >>> s5 đầu ra '3' >>> s6 đầu ra '3' Chúng xuất hiện giống nhau. Được rồi, bây giờ hãy xem cái này >>> s7 đầu ra ‘2018-09-07 17. 33. 24. 261778' >>> s8 đầu ra 'ngày giờ. ngày giờ (2018, 9, 7, 17, 33, 24, 261778)' >>> s9 đầu ra ngày giờ. ngày giờ(2018, 9, 7, 17, 33, 24, 261778) Sử dụng biểu diễn 'chính thức' này, chúng ta có thể tái tạo lại đối tượng, nhưng không phải với những gì str() mang lại cho chúng ta >>> x=7 >>> eval(repr(x))==x0 đầu ra ngày giờ. ngày giờ(2018, 9, 7, 17, 33, 24, 261778) >>> x=7 >>> eval(repr(x))==x1 đầu ra Traceback (most recent call last):File “ eval(‘2018-09-07 17. 33. 24. 261778’) File “ 2018-09-07 17. 33. 24. 261778 ^ Lỗi cú pháp. Mã không hợp lệ Hãy lấy một ví dụ khác >>> x=7 >>> eval(repr(x))==x2 đầu ra __repr__ cho bản trình diễn >>> x=7 >>> eval(repr(x))==x3 đầu ra __str__ cho bản trình diễn >>> x=7 >>> eval(repr(x))==x4 đầu ra '__str__ cho bản demo' >>> x=7 >>> eval(repr(x))==x5 đầu ra '__repr__ cho bản demo' >>> x=7 >>> eval(repr(x))==x6 đầu ra '__str__ cho bản demo' Vì vậy, đây là tất cả trong hướng dẫn repr Python. Hy vọng bạn thích lời giải thích của chúng tôi Câu hỏi phỏng vấn Python về hàm repr
Phần kết luậnTrình thông dịch tương tác cũng sử dụng repr() để cung cấp cho bạn đầu ra của biểu thức kết quả=expr; . in lại (kết quả) Do đó, trong hướng dẫn repr Python này, chúng ta đã thảo luận về ý nghĩa của repr trong Python. Ngoài ra, chúng ta đã xem ví dụ repr Python và làm việc với các đối tượng lớp. Hơn nữa, chúng tôi đã thấy str vs repr trong Python Tuy nhiên, nếu bạn có bất kỳ câu hỏi nào liên quan đến hướng dẫn lặp lại Python, hãy hỏi trong tab nhận xét. Nếu bạn hài lòng với DataFlair, đừng quên làm chúng tôi hài lòng với phản hồi tích cực của bạn trên Google. Facebook __ REPR __ trong Python là gì?Phương thức __repr__() trả về một biểu diễn chuỗi giàu thông tin hoặc chính thức hơn của một đối tượng . Phương thức này được gọi bởi hàm repr() tích hợp. Nếu có thể, chuỗi được trả về phải là một biểu thức Python hợp lệ có thể được sử dụng để tạo lại đối tượng.
str() trong Python là gì?Python có một lớp chuỗi dựng sẵn tên là "str" với nhiều tính năng tiện dụng (có một mô-đun cũ hơn tên là "string" mà . Chuỗi ký tự có thể được đặt trong dấu nháy kép hoặc dấu nháy đơn, mặc dù dấu nháy đơn được sử dụng phổ biến hơn.
Mục đích của __ repr __ là gì?Theo tài liệu chính thức, __repr__ được sử dụng để tính toán biểu diễn chuỗi "chính thức" của một đối tượng và thường được sử dụng để gỡ lỗi.
Mục đích của việc định nghĩa các hàm __ STR __ và __ REPR __ trong một lớp Hai hàm này khác nhau như thế nào?__str__ được sử dụng để hiển thị một chuỗi đại diện cho đối tượng của bạn để người khác dễ dàng đọc được. __repr__ được sử dụng để hiển thị biểu diễn chuỗi của đối tượng. Lưu câu trả lời này |