文档章节

Python类的一般形式和继承

p
 peizh
发布于 2017/11/06 20:53
字数 645
阅读 11
收藏 0

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

© 著作权归作者所有

p
粉丝 2
博文 30
码字总数 17001
作品 0
闸北
私信 提问
来自非专业Python讲师的一份Django考题,面试无忧!

Django的面试题少之又少,然而对于Python程序员又不得不掌握。 可以考察笔试者对于框架的理解和使用熟练度,展开了问,也可以问到很深的地方。 Django的Model的继承有几种形式,分别是什么?...

Python新世界
2018/07/12
0
0
学习笔记(11月06日) --类

四周一次课(11月6日) 一、类的一般形式 创建类我们一般用class关键字来创建一个类,class后面跟类名字,可以自定义,最后以冒号结尾,如下所示: class ClassName: '''类的说明''' 类的内容...

wanyang_wanyang
2018/06/26
0
0
Python - 进阶(持续更新 ing)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/qq39437555/article/details/93867588 文章目录 Python - 面向对象 ...

桃子味儿的汽水~
08/23
0
0
万字长文带你成为Python老司机

万字长文带你成为Python老司机 前言: 本文主要总结项目开发中和面试中的Python高级知识点,是进阶Python高级工程师必备要点。 主要内容: No.1 一切皆对象 众所周知,Java中强调“一切皆对象...

棋帅小七
2018/08/09
0
0
python2和python3的继承方式的不同,广度优先和深度有限

脚踏黄土,头顶清风,不道苦楚,莫问前程!!! --- 参考文章三篇 简书第一篇 ,简书第二篇,博客园的文章,这篇博客园文章讲的很好 通过继承创建的新类称为“子类”或“派生类”,被继承的类...

鹏灬
2018/09/12
100
0

没有更多内容

加载失败,请刷新页面

加载更多

反编译9.png图片还原

本文链接:https://blog.csdn.net/a1140778530/article/details/10528507 经常反编译apk文件找资源,9.png的文件处理起来很麻烦。 最近使用Ant自动编译打包app时,从别处搜罗来的9.png文件导...

shzwork
5分钟前
1
0
Shell脚本应用 – for、while循环语句

一、for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如:根据通讯录中的姓名列表创建系统账号等情况。 当面对各种...

linux-tao
5分钟前
1
0
RPA风潮下企业财务工作模式的变革

RPA(机器人流程自动化)在财务领域的应用,正给企业财务带来前所未有的改变。 前RPA时代,财务领域面临的痛点 在RPA机器人应用之前,企业财务工作进程的推进,主要通过财务人员人工操作或信...

UiBot
10分钟前
2
0
Hive之命令行修改表注释

最近遇到一个需求,在不重建表的情况下,修改表的注释,hive有没有类似关系型数据库的SQL命令来修改呢,找了下,亲测有效,如下List-1 List-1 hive>use your_schemahvie>ALTER TABLE tabl...

克虏伯
11分钟前
1
0
是什么,它的作用是什么

在HTML文档的首部往往会有这么一句话<!DOCTYPE html>,许多时候我们忽视了它的存在,它实际上是一个声明,告诉浏览器用哪种HTML版本的规范来解读HTML文档。 尽管我们不给出这句声明浏览器照样...

前端老手
16分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部