Là repr() một con trăn được xây dựng

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.  

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

  • Đây là một chức năng tích hợp
  • Điều này có một đối tượng
  • Điều này trả về biểu diễn chuỗi chuẩn của đối tượng này
  • Nó có cú pháp sau

lặp lại [đối tượng, /]

  • Nó đúng với nhiều loại đối tượng và hầu hết các nội trang eval[repr[obj]]=obj

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 Python

Hã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 “”, line 1, in

eval['Xin chào, thế giới. ’]

File “”, line 1

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ớp

Chú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

ĐÚNG VẬY

________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

>>> s
0

đầu ra

Đâ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/

>>> s
1

đầu ra

>>> s
0

đầ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 Python

Cả 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?

  • Mục tiêu của __repr__ là rõ ràng và của __str__ là có thể đọc được
  • __repr__ là loại chính thức và __str__ hơi không chính thức

Lấy một ví dụ để đảm bảo bạn hiểu sự khác biệt

>>> s
3

đầu ra

Xin chào

>>> s
4

đầu ra

'Xin chào'

  • Câu lệnh in và hàm str[] thực hiện .
  • Bất kỳ chuỗi nào tại dấu nhắc trình thông dịch đều thực hiện cuộc gọi tới __str__[], nhưng một đối tượng tại dấu nhắc thực hiện cuộc gọi tới __repr__[]

Muốn chuẩn bị cho Phỏng vấn Python – Bấm vào đây >>>

Hãy xem

>>> s
5

đầu ra

'3'

>>> s
6

đầ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

>>> s
7

đầu ra

‘2018-09-07 17. 33. 24. 261778'

>>> s
8

đầu ra

'ngày giờ. ngày giờ [2018, 9, 7, 17, 33, 24, 261778]'

>>> s
9

đầ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]]==x
0

đầu ra

ngày giờ. ngày giờ[2018, 9, 7, 17, 33, 24, 261778]

>>> x=7
>>> eval[repr[x]]==x
1

đầu ra

Traceback [most recent call last]:File “”, line 1, in

eval[‘2018-09-07 17. 33. 24. 261778’]

File “”, line 1

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]]==x
2

đầu ra

__repr__ cho bản trình diễn

>>> x=7
>>> eval[repr[x]]==x
3

đầu ra

__str__ cho bản trình diễn

>>> x=7
>>> eval[repr[x]]==x
4

đầu ra

'__str__ cho bản demo'

>>> x=7
>>> eval[repr[x]]==x
5

đầu ra

'__repr__ cho bản demo'

>>> x=7
>>> eval[repr[x]]==x
6

đầ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

  1. Hàm repr trong Python là gì?
  2. Sự khác biệt giữa repr và str trong Python là gì?
  3. repr có nghĩa là gì trong Python?
  4. Việc sử dụng chức năng repr trong Python là gì?
  5. Cho ví dụ về hàm repr trong Python

Sự kết luận

Trì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

Hàm repr[] trong Python là gì?

Hàm repr[] Python trả về một biểu diễn có thể in được của một đối tượng trong Python .

repr trong lớp 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.

Sự khác biệt giữa repr và str trong Python là gì?

Sau đây là sự khác biệt. str[] được sử dụng để tạo đầu ra cho người dùng cuối trong khi repr[] chủ yếu được sử dụng để gỡ lỗi và phát triển . mục tiêu của repr là rõ ràng và str là có thể đọc được.

Cái nào không được xây dựng

String[] không phải là hàm dựng sẵn trong python.

Chủ Đề