第九部分 面向对象

2019-02-01  本文已影响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()  #方法名同,默认调用的是在括号中排前地父类的方法

上一篇下一篇

猜你喜欢

热点阅读