python子類如何繼承父類的實例變量?


類型1:父類和子類的實例變量均不需要傳遞

class A(object):
    def __init__(self):
        self.name = "cui"

    def get_name(self):
        return self.name


class B(A):
    def __init__(self):
        super(B,self).__init__()
        self.age = 12


b = B()

 

類型2:父類的實例變量不需要傳遞,子類的實例變量需要傳遞

class A(object):
    def __init__(self):
        self.name = "zhang"


    def get_name(self):
        return self.name


class B(A):
    def __init__(self,age):
        super(B,self).__init__()
        self.age = age


b = B("san")

 

類型3:父類有部分實例變量需要傳遞,子類實例變量需要傳遞

class A(object):
    def __init__(self,sex):
        self.name = "zhang"
        self.sex = sex


    def get_name(self):
        return self.name + self.sex


class B(A):
    def __init__(self,sex,age):
        super(B,self).__init__(sex)
        self.age = age


b = B("",12)

 

類型4:父類和子類的所有變量都需要傳遞

class A(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex


    def get_name(self):
        return self.name + self.sex


class B(A):
    def __init__(self,name,sex,age):
        super(B,self).__init__(name,sex)
        self.age = age


b = B("zhang","",12)

 

類型5:父類變量都需要傳遞,子類有部分實例變量需要傳遞

class A(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex


    def get_name(self):
        return self.name + self.sex


class B(A):
    def __init__(self,name,sex,age):
        super(B,self).__init__(name,sex)
        self.age = age
        self.courage = "高中"


b = B("zhang","",12)

 

類型6:父類和子類都有部分實例變量需要傳遞

class A(object):
    def __init__(self,name):
        self.name = name
        self.sex = ""


    def get_name(self):
        return self.name + self.sex


class B(A):
    def __init__(self,name,sex,age):
        super(B,self).__init__(name)
        self.age = age
        self.courage = "高中"


b = B("zhang","",12)

 

總結:

子類繼承父類的構造函數中,在子類的構造函數中,__init__方法中的變量是包括自己和父類所有需要傳遞的變量,而在super().__init__方法中的參數僅僅包括父類需要傳遞的變量

    def __init__(self,name,sex,age):
        super(B,self).__init__(name)
        self.age = age
        self.courage = "高中"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM