Python类的一般形式和继承

Python类的一般形式和继承

 

1、 类的一般形式

创建类,一般用class关键字创建一个类,

class ClassName:
    '''类的说明'''
   
类的内容

 

 

类的内容可以写类的全局变量,方法:

 

class ren(object):

    '''this class is abort class'''

    name = 'meizi'

    sex = 'F'

    def hello(selfself):

        print('hello world!')



a = ren()

print(type(a))

print(a.name)

print(a.sex)

a.hello()

结果:

<class '__main__.ren'>

meizi

F

hello world!

 

2、 类的构造器

__init__ 构造函数,在生成对象时调用。由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去

 

class Student(object):



    def __init__(self, name, score):

        self.name = name

        self.score = score

__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去

 

class Student(object):



    def __init__(self, name, score):

        self.name = name

        self.score = score



a = Student('abc',20)

print(a.name)

print(a.score)

结果:

abc

20

 

 

3、 类的继承

当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

         我们可以继承了object类,object类是所有类的父类,所有的类都默认继承object类,它是一个超级类,如果不写,默认继承object。

class A(父类):

    pass

 

python的类支持多继承

class A:    #定义类A

    pass

class B(A):     #定义类B,类B继承类A

    pass

class C(A,B):   #定义类C,继承类A,类B

    pass

例:

class ren:

    name = 'ren'

    sex = 'F'

    def __init__(self):

        print('ren is {0}'.format(self.name))

    def get_name(self):

        return self.name

    def get_sex(self):

        return self.sex





class child(ren):

    name = 'test'

    sex = 'M'

    def __init__(self):

        print('my name is {0}'.format(self.name))

    def hello(self):

        print('hello world!')

    def get_name(self):

        return self.name

    def get_sex(self):

        return self.sex







test = child()

test.hello()

print(test.get_name())

print(test.get_sex())

结果:

my name is test

hello world!

test

M

 

例:

class ren:

    name = 'ren'

    sex = 'F'

    def __init__(self):

        print('ren is {0}'.format(self.name))

    def get_name(self):

        return self.name

    def get_sex(self):

        return self.sex





class child(ren):

    # name = 'test'

    # sex = 'M'

    def __init__(self):

        print('my name is {0}'.format(self.name))

    def hello(self):

        print('hello world!')

    def get_name(self):

        return self.name

    def get_sex(self):

        return self.sex







test = child()

test.hello()

print(test.get_name())

print(test.get_sex())

结果:

my name is ren

hello world!

ren

F

转载于:https://my.oschina.net/peizh/blog/1563401

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值