我们在前面学习的数据类型都是类,我们可以在类中使用很多方法。

1. 类的定义

类的定义使用的是class关键字,语法结构如下:class Name:

'''类文档'''

content

Name为我们要创建的类的名字,注意我们在使用的时候尽量采用大写的方式,如果采用两个单词命名,两个单词的首字母都采用大写的方式。

类文档为我们写入的帮助我们理解这个类的信息。

content为类中的类体,会包含变量。方法和属性等内容,如果我们在定义类的时候暂时不需要添入内容,可以采用pass语句充当一种占位语句。

我们来定义一个类:class School:#这种方式我们就定义了一个名为School的类

'''定义一个学校类'''

pass

school = School()#通过这种方式来调用这个类

print(type(school))#通过输出看一下它的类型print(school)

输出结果为:

通过结果我们可以看到school为一个类,通过第二行我们可以看出school是School类的实例。

2. __init__()方法

在创建类的时候,往往会创建一个__init__()方法,这种方法属于构造方法,也就是每次调用这个类都会使用这种方法,参数的传递也是在这个方法里。

这种方法中必须包含一个self参数,也必须是第一个参数,这个参数是指向这个实例本身的,它可以访问这个类中存在的属性和方法。

看下面的实例:class School:#这种方式我们就定义了一个类,如果我们要调用这个类

'''定义一个学校类'''

def __init__(self):

print('这里是__init()__方法')

def __judge__(self):

print('判断这个方法是否被调用')

school = School()

输出结果为:这里是__init()__方法

通过输出我们可以看出只要调用了这个类就自动调用了这个__init__方法,而下面的__judge__方法是没有被调用的。

我们还可以通过循环的方式来验证一下是否每次调用这个类就会使用一次init方法:

看下面代码:class School:

'''定义一个学校类'''

count = 0

def __init__(self):

School.count += 1

print('这里是__init()__方法的第%d次使用'%School.count)

for i in range(5):

School()

输出结果为:这里是__init()__方法的第1次使用

这里是__init()__方法的第2次使用

这里是__init()__方法的第3次使用

这里是__init()__方法的第4次使用

这里是__init()__方法的第5次使用

我们可以通过输出结果看出我们使用5次init方法,当我们第一次调用这个类的时候,count为0,然后通过init方法进行加1操作,在init方法里的school.count每次进行加1,然后最外面的count是不变的,通过这个例子我们可以了解到init的使用法发。

3. 参数传递

我们在学习函数的时候,参数的传递是定义在函数名内的,而在类中,我们通过init方法可以更方便的进行参数的传递。

看下面的例子:class GetAge:

def __init__(self,name,age):

self.name = name

self.age = age

print('%s的年龄为%d'%(name,age))

GetAge('小明',18)

输出结果为:小明的年龄为18

我们需要注意,self是必不可少的,而且需要放在第一个,然后我们在调用这个类的时候,init方法中所包含的参数个数(不包含self),一定是等同于我们在调用的时候实际参数传递的个数。

python定义类带参数_类的定义、构造方法和参数传递相关推荐

  1. C++ 类与对象_类的其他成员(常成员,静态成员,友元)

    系列文章目录 重新复习c++,所以把书中的重点内容整理成博客,尽量简洁,易懂. C++ 类与对象_类和对象的定义与访问 (定义类和对象,访问对象成员,this指针) C++ 类与对象_构造函数和析构函 ...

  2. 宏定义有无参数宏定义和带参数宏定义两种

    宏定义有无参数宏定义和带参数宏定义两种. 无参数的宏定义的一般形式为 # define 标识符 字符序列 其中# define之后的标识符称为宏定义名(简称宏名),要求宏名与字符序列之间用空格符分隔. ...

  3. Python 执行SQL带参数

    Python 执行SQL带参数 转载于:https://www.cnblogs.com/xibuhaohao/p/10451456.html

  4. python类方法第一个参数_跟黄哥学python之“为啥类第一个参数是实例对象”

    python类的第一个参数为啥默认传的是实例对象.黄哥:黄哥Python培训是这样训练学员的​zhuanlan.zhihu.com 请看黄哥的代码和视频说明.点击播放 #! /usr/bin/pyth ...

  5. python类带参数_Python函数参数传递机制(超级详细)

    Python中,函数参数由实参传递给形参的过程,是由参数传递机制来控制的.通过学习<Python函数值传递和引用传递>一节我们知道,根据实际参数的类型不同,函数参数的传递方式分为值传递和引 ...

  6. Python 进阶_OOP 面向对象编程_类和继承

    目录 目录 类 最简单的类 类方法 构造器 __init__ 创建一个类 实例化一个对象 调用实例的方法和属性 创建子类 使用 super 来调用父类的构造器 实例化子类对象 调用子类的属性和方法 类 ...

  7. python装饰器带参数函数二阶导数公式_MVision/caffe_简介_使用.md at master · Ewenwan/MVision · GitHub...

    2. caffe 模型配置文件 prototxt 详解 每个模型由多个 层 构成 layer {{{{ name: "{}" #层名字,可随意取名 type: "{}&q ...

  8. Python 进阶_OOP 面向对象编程_类属性和方法

    目录 目录 类属性 调用类属性 查看类属性 特殊的类属性 类方法 真构造器 __new__ 类属性 在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象 ...

  9. python装饰器带参数函数二阶导数公式_【计算机程序的构造和解释】使用函数构建抽象——5. 高阶函数...

    学Python,用RPA 艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用艺赛旗-RPA机器人免费下载|提供流程自动化解决方案​www.i-search.com.cn 我们已经看到,函数 ...

最新文章

  1. 问题集录--如何本地调试微信接口(未测试)
  2. Flask and Ajax Post HTTP/1.1 400
  3. layui table行点击tr_layui框架table表格实现单击行选中checkbox功能
  4. python定义一个类和子类_Python定义类、定义子类以及super()函数的使用
  5. vb计算机水平考试笔试,2014计算机考试二级VB笔试答题技巧汇总
  6. ARM 汇编中的 B . 语句意义
  7. EdgeGallery:聚焦 5 大行业场景,MEC 开源平台将 5G 能力拓展到边缘
  8. 白话解释 Javascript 原型继承(prototype inheritance)
  9. 完美世界:笔试题(最小漂流船只数累计,主城之间的最小距离迪杰斯特拉)...
  10. 【报告分享】快手、抖音、视频号对比,竞争趋紧,运营体系成关键.pdf(附下载链接)...
  11. 三星帝国的风险:四大业务同荣同损
  12. SoundPool概述
  13. java毕业设计物流跟踪系统mybatis+源码+调试部署+系统+数据库+lw
  14. 引用 八卦象数疗法--配方2
  15. c语言1000万位圆周率,如何设计C语言程序输出圆周率小数点后的1000位?请大侠出手啊。...
  16. 建筑热过程太阳辐射负荷计算
  17. IP MAC捆绑原理及缺陷的讨论
  18. 1e9个兵临城下 - 容斥原理
  19. 去掉最高分最低分求平均分
  20. linux安装最新版的glib库,GLib库安装与简析

热门文章

  1. 关于邮件系统域名被拉黑,比如不能发送给QQ邮箱
  2. 最简单的奇数阶幻方(魔方)算法详解
  3. windows上面运行jar文件
  4. cpu被锁频解除方法_前段时间更新了最新推送的win10系统1903版本之后就出现了一个问题,我的cpu被锁频了...
  5. 【实操】Oracle数据库导出、导入命令详解
  6. android转型宅家研究小日记(初学者笔记)49天(结束宅家)
  7. DataStage 使用心得
  8. CPLEXJava 3.简单的线性规划问题
  9. 黑客组织匿名者宣布将推出一档新闻节目
  10. 无关联企业无收入,企业所得税年度关联企业申报表怎么去填呢?