美文网首页
第九部分 面向对象

第九部分 面向对象

作者: 护国寺小学生 | 来源:发表于2019-02-01 21:00 被阅读0次

    #定义一个类

    class Myclass:

        #类的属性

        attr='类的属性'

        #类的方法

        def _init_(self):

            self.data=[]

        def func(var):

            return 'hello python!!'

    #实例化——对象

    obj=Myclass()

    print(obj.attr)

    print(obj.func())


    class Complex:

        def __init__(self,realpart,imagpart):

            self.r = realpart

            self.i = imagpart

    x = Complex(3.0, -4.5)

    print(x.r,x.i)


    #self 代表类的实例,代表当前对象的地址,self 不是 python 关键字,我们把他换成别的也是可以正常执行的:

    class Test:

        def prt(self):

            print(self)

            print(self.__class__)

    t=Test()

    t.prt()


    #类的方法

    #在类地内部,使用 def 关键字来定义一个方法,

    #与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。

    #定义类

    class people:

        #定义类的基本属性

        name = ''

        age = 0

        #定义类的私有属性,外部无法直接访问

        __weight = 0

        #构造方法

        def __init__(self,n,a,w):

            self.name=n

            self.age=a

            self.__weight=w

        def speak(self):

            print('%s说我今年%d岁了!'%(self.name,self.age))

    #实例化类

    p=people('mary',23,120)

    print(p.name)

    print(p.age)

    p.speak()


    #继承

    class people:

        name = ''

        age = 0

        __weight = 0

        def __init__(self,n,a,w):

            self.name=n

            self.age=a

            self.__weight=w

        def speak(self):

            print('%s说我今年%d岁了!'%(self.name,self.age))

    #单继承

    class student(people):

        #定义基本属性

        grade=0

        #构造方法

        def __init__(self,n,a,w,g):

            #调用父类的构函

            people.__init__(self,n,a,w)

            self.grade=g

        #覆写父类的方法

        def speak(self):

            print('%s说我今年%d岁了,在读%d年级。'%(self.name,self.age,self.grade))

    s=student('mary',23,120,5)

    s.speak()


    #多继承

    class people:

        name = ''

        age = 0

        __weight = 0

        def __init__(self,n,a,w):

            self.name=n

            self.age=a

            self.__weight=w

        def speak(self):

            print('%s说我今年%d岁了!'%(self.name,self.age))

    #单继承

    class student(people):

        #定义基本属性

        grade=0

        #构造方法

        def __init__(self,n,a,w,g):

            #调用父类的构函

            people.__init__(self,n,a,w)

            self.grade=g

        #覆写父类的方法

        def speak(self):

            print('%s说我今年%d岁了,在读%d年级。'%(self.name,self.age,self.grade))

    #再定义一类

    class talker():

        name=''

        topic=''

        def __init__(self,n,t):

            self.name=n

            self.topic=t

        def speak(self):

            print('我是%s,今天讨论的主体是%s'%(self.name,self.topic))

    #多重继承

    class talk(talker,student):

        def __init__(self,n,a,w,g,t):

            student.__init__(self,n,a,w,g)

            talker.__init__(self,n,t)

        def speak(self):

            print('我是%s,今年%d岁了,在读%d年级,今天讨论的主体是:《%s》'%(self.name,self.age,self.grade,self.topic))

    test=talk('mary',12,120,5,'python的应用')

    test.speak()  #方法名同,默认调用的是在括号中排前地父类的方法

    相关文章

      网友评论

          本文标题:第九部分 面向对象

          本文链接:https://www.haomeiwen.com/subject/gabptqtx.html