Python的__str__和__repr__方法
如果要把一個類的例項變成 str,就需要實現特殊方法__str__()
:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __str__(self):
return '(Person: %s, %s)' % (self.name, self.gender)
現在,在互動式命令列下用 print 試試:
>>> p = Person('Bob', 'male')
>>> print p
(Person: Bob, male)
但是,如果直接敲變數 p:
>>> p
<main.Person object at 0x10c941890>
似乎__str__()
不會被呼叫。
因為 Python 定義了__str__()
和__repr__()
兩種方法,__str__()
用於顯示給使用者,而__repr__()
用於顯示給開發人員。
有一個偷懶的定義__repr__
的方法:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __str__(self):
return '(Person: %s, %s)' % (self.name, self.gender)
__repr__ = __str__
任務
請給Student 類定義__str__
和__repr__
方法,使得能列印出<Student: name, gender, score>:
只要為Students 類加上__str__()
和__repr__()
方法即可。
參考程式碼:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
class Student(Person):
def __init__(self, name, gender, score):
super(Student, self).__init__(name, gender)
self.score = score
def __str__(self):
return '(Student: %s, %s, %s)' % (self.name, self.gender, self.score)
__repr__ = __str__
s = Student('Bob', 'male', 88)
s
(Student: Bob, male, 88)
相關文章
- python 中的魔法方法:__str__ 和__repr__Python
- python: 理解__str__Python
- Python類中__del__()、__call__()、__repr__()、__new__()、__hash__()方法Python
- 詳解Python魔法函式,__init__,__str__,__del__Python函式
- 04 #### `__str__` , 輸出物件物件
- Python 靜態方法和類方法的區別Python
- Python的靜態方法和類成員方法Python
- python中模組和方法的查詢Python
- Python中類的建立和使用方法Python
- Python 的技巧和方法你瞭解多少?Python
- Python中函式和方法的區別Python函式
- python3 字串的方法和註釋Python字串
- python建立類和類方法Python
- Python探析get和post方法Python
- Python主要模組和常用方法Python
- [Python 基礎] Python 例項方法、靜態方法和類方法詳解 (包含區別和用法)Python
- Python中的字串切割和拼接方法都有哪些?Python字串
- Python計算1到n的和常用方法!Python
- Python中有重寫和過載的方法嗎?Python
- range方法在Python2和Python3中的不同Python
- 一問搞懂python的__init__和__new__方法Python
- python屬性和方法的區別是什麼Python
- python 根據物件和方法名,返回提供這個方法的定義的類Python物件
- python繼承和重寫init方法Python繼承
- python os模組功能和方法總結Python
- Python生成器next方法和send方法區別Python
- Python的類方法Python
- python isinstance和issubclass,區分方法和函式,反射Python函式反射
- Python中如何避免字典和元組的多重巢狀的方法Python巢狀
- python 魔法方法,屬性和迭代器Python
- Python中私有變數和私有方法Python變數
- Python中類方法和例項方法有什麼區別?Python
- Python3中列表方法append()和extend()的區別PythonAPP
- Python關於反射和類的特殊成員方法詳解Python反射
- Python中動態類和動態方法的建立與呼叫Python
- 初學Python過程中,例項方法和類方法的區別是什麼?Python
- Python中列表的方法Python
- python類中的方法Python