Repr() có phải là hàm tích hợp sẵn của Python không?
Đây là một cách tiếp cận sang trọng khác từ Python, không có ý định chơi chữ. Lớp enum của Python sẽ cho phép bạn tạo các thành viên đối tượng enum với các giá trị không đổi và duy nhất mà sau đó có thể được liệt kê, so sánh hoặc sử dụng để nhận dạng Show
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. 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 Hàm repr() trong Python là gì?Hàm __repr__() của Python trả về biểu diễn đối tượng ở định dạng chuỗi . Phương thức này được gọi khi hàm repr() được gọi trên đối tượng. 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ái tạo lại đối tượng.
Bản in Python có sử dụng str hay repr không?Câu lệnh in và hàm tích hợp str() sử dụng __str__ để hiển thị biểu diễn chuỗi của đối tượng trong khi hàm tích hợp repr() sử dụng __repr__ để hiển thị đối tượng .
Sự khác biệt giữa repr và str trong Python là gì?Bây giờ, nếu bạn xem tài liệu chính thức về python - __str__ được sử dụng để tìm biểu diễn chuỗi "không chính thức" (có thể đọc được) của một đối tượng trong khi __repr__ được sử dụng để tìm biểu diễn chuỗi "chính thức" của một đối tượng
Liệu repr có trả về một chuỗi không?Hàm repr() trả về chuỗi đại diện của giá trị được truyền cho hàm eval theo mặc định . Đối với đối tượng lớp tùy chỉnh, nó trả về một chuỗi được đặt trong dấu ngoặc nhọn chứa tên và địa chỉ của đối tượng theo mặc định. |