內置方法 __str__ __repr__

內置方法(雙下方法,魔術方法)

  在不須要程序員定義,自己就存在的類中的方法就是內置方法程序員

 內置方法:  __名字__函數

  __init__   不須要咱們主動調用,而是在實例化的時候內部自動調用的,存在一種自動觸發它的語法spa

__str__  __repr__

__str__
當你打印一個對象的時候 觸發__str__
當你使用%s格式化的時候 觸發__str__
str強轉數據類型的時候 觸發__str__

__repr__
repr是str的備胎
有__str__的時候執行__str__,沒有實現__str__的時候,執行__repr__
repr(obj)內置函數對應的結果是 __repr__的返回值
當你使用%r格式化的時候 觸發__repr__
class A:
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
    def __str__(self):
        return "str   %s %s %s"%(self.name,self.age,self.sex)
    def __repr__(self):
        return "repr   %s %s %s"%(self.name,self.age,self.sex)
a = A("lin",23,"")
print(a)     #str   lin 23 男   #打印對象a時,自動執行str 方法,
                # 當存在str時,直接打印就只執行str而不會執行repr方法,若是沒有str就執行repr
print(repr(a))  #repr   lin 23 男        能夠經過調用來執行repr方法
print("%r"%a)   #repr   lin 23 男  經過%r也能夠調用repr方法
print("%s"%a)   #str   lin 23 男   經過%s調用的是str方法
相關文章
相關標籤/搜索