python - Why is __repr__ called in the code below? -


can please me why __repr__ method called q.pop() method in code below?

>>> class item: ...     def __init__(self, name): ...         self.name = name ...     def __repr__(self): ...         return 'item({!r})'.format(self.name) ... >>> q = priorityqueue() >>> q.push(item('foo'), 1) >>> q.push(item('bar'), 5) >>> q.push(item('spam'), 4) >>> q.push(item('grok'), 1) >>> q.pop() item('bar') >>> q.pop() item('spam') >>> q.pop() item('foo') >>> q.pop() item('grok')  >>> 

the built-in __repr__ function used return printable format of object. in case, because item custom object/class, override in __repr__ allows instance of item displayed in terminal. see when call q.pop(), item printed screen, , printing done through override of __repr__ function.

q.pop() prints item('bar')because overridden __repr__ function item says print 'item({!r})'.format(self.name). prints word: item('') , format part fills in actual contents of item between single quotes, resulting in item('bar') being printed screen.

read more here: purpose of python's __repr__


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -