当前位置: 首页 > news >正文

Python类的一般形式和继承

为什么80%的码农都做不了架构师?>>>   hot3.png

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

相关文章:

  • ArcGIS 10.5 新功能
  • 局域网内手机播放视频
  • Ubuntu Server 10.10 操作手记
  • JavaScript 基本功--面试宝典
  • Oracle Number用法
  • Linux下随机10字符病毒的清除
  • wbadmin执行备份命令
  • Oracle Study之案例--通过IPCS查看共享内存之“怪现象”
  • DVDROM驱动不能加载的问题
  • 【驱动】linux设备驱动·扫盲
  • 对Context的重新思考
  • 在RHEL5下构建LAMP网站服务平台之架设Discuz!论坛
  • 依赖倒置原则
  • .net Application的目录
  • React Router
  • 《Java编程思想》读书笔记-对象导论
  • docker容器内的网络抓包
  • Elasticsearch 参考指南(升级前重新索引)
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Git 使用集
  • JavaScript对象详解
  • Less 日常用法
  • Vue.js 移动端适配之 vw 解决方案
  • 对象管理器(defineProperty)学习笔记
  • 机器学习中为什么要做归一化normalization
  • 将 Measurements 和 Units 应用到物理学
  • 目录与文件属性:编写ls
  • 前端存储 - localStorage
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 微服务核心架构梳理
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • !!Dom4j 学习笔记
  • #pragma multi_compile #pragma shader_feature
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (二)构建dubbo分布式平台-平台功能导图
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (南京观海微电子)——COF介绍
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)Sql Server 保留几位小数的两种做法
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .gitignore文件---让git自动忽略指定文件
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 依赖注入和配置系统
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET框架
  • .NET企业级应用架构设计系列之技术选型
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @Query中countQuery的介绍
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [04] Android逐帧动画(一)