详解Python中def __init__(self)与def __init__(self.参数1、参数2······)的区别
两者的主要区别
1.初始化参数为空的表述方式不同
2. 初始化附参数的表达方式不同,结构2的self.name一定要指向上面的参数
3. 实例化时的方法不同
def init(self)与def init(self.参数1、参数2······)在类中常常被作为初始化使用,对于代码的简化,对代码中多次出现的类进行参数设定,提高代码的可读性有很大帮助,两者主要存在三个区别。
1.初始化参数为空的表述方式不同
#def __init__(self)结构
class student:def __init__(self):self.name = Noneself.score = None#def __init__(self.参数1、参数2······)结构
class student:def __init__(self, name, score):self.name = nameself.score = score
- 初始化附参数的表达方式不同,结构2的self,name一定要指向上面的参数
#def __init__(self)结构
class student:def __init__(self):self.name = Aself.score = 18
#def __init__(self.参数1、参数2······)结构
class student:def __init__(self, name=A, score=18):self.name = nameself.score = score
- 实例化时的方法不同
结构体1在实例化时需要先引用结构体,在结构体里进行参数更改
#def __init__(self)结构
class Student:def __init__(self):self.name = Noneself.score = Nonedef print_score(self):print("%s score is %s" % (self.name,self.score))if __name__ == '__main__':# 创建对象s1s1 = Student()s1.name = "b"s1.score = 20s1.print_score()print(s1.__dict__)#看属性
结构体2在实例化时需要先引用结构体,在引用体的括号里进行更改
#def __init__(self.参数1、参数2······)结构
class Student:def __init__(self,name,score):self.name = nameself.score = scoredef print_score(self):print("%s score is %s" % (self.name,self.score))if __name__ == '__main__':# 创建对象s1s1 = Student("b",20)s1.print_score()print(s1.__dict__)#看属性
总结
两种方式的使用方法上略微有区别,但功能上是一致的,习惯哪个用哪个就行。
详解Python中def __init__(self)与def __init__(self.参数1、参数2······)的区别相关推荐
- pythonnamedtuple定义类型_详解Python中namedtuple的使用
namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...
- python操作符op_详解python中的 is 操作符
大家可以与Java中的 == 操作符相互印证一下,加深一下对引用和对象的理解.原问题: Python为什么直接运行和在命令行运行同样语句但结果却不同,他们的缓存机制不同吗? 其实,高票答案已经说得很详 ...
- python的装饰器迭代器与生成器_详解python中的生成器、迭代器、闭包、装饰器
迭代是访问集合元素的一种方式.迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 1|1可迭代对象 以直接作用于 for ...
- python namedtuple用法_详解Python中namedtuple的使用
namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...
- python expandtabs_详解Python中expandtabs()方法的使用
详解Python中expandtabs()方法的使用 expandtabs()方法返回制表符,即该字符串的一个副本. '\t'已经使用的空间,可选择使用给定的tabsize(默认8)扩展. 语法 以下 ...
- 详解Python中的封装
文章目录 详解Python中的封装 基础入门 -> setter.getter 进阶使用 -> __ 私有属性 _ 强化加强 -> property 详解Python中的封装 面向对 ...
- python停止线程池_详解python中Threadpool线程池任务终止示例代码
需求 加入我们需要处理一串个位数(0~9),奇数时需要循环打印它:偶数则等待对应时长并完成所有任务:0则是错误,但不需要终止任务,可以自定义一些处理. 关键点 定义func函数处理需求 callbac ...
- python中index函数_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- python xlrd安装_详解python中xlrd包的安装与处理Excel表格
一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...
- python 协程可以嵌套协程吗_Python | 详解Python中的协程,为什么说它的底层是生成器?...
今天是Python专题的第26篇文章,我们来聊聊Python当中的协程. 我们曾经在golang关于goroutine的文章当中简单介绍过协程的概念,我们再来简单review一下.协程又称为是微线程, ...
最新文章
- 最大医学影像平台将首个实现把医疗AI引入实际应用
- 客户旅程_我如何充分利用freeCodeCamp的旅程
- SpringBoot默认包扫描机制及@ComponentScan指定扫描路径详解
- 她拒绝麦肯锡 Offer,建立图片训练数据库,斯坦福 AI 实验室负责人 | 人物志
- ubuntu shortcuts
- 190628每日一句
- python实现t分布
- 彻底解决Python包下载慢问题
- Ubuntu ROS下Conda的最好安装方式
- java 电子栅栏,Java Exchanger栅栏
- 20190401每周精品之认知
- Either your server has no Maven installations defined, or the requested Maven version does not exist
- 大数据正当时,理解这几个术语很重要
- 日常开发中,你需要掌握的git使用报错解决
- 【Android】实现生成二维码、条形码和扫描二维码的功能
- 动规(11)-踩方格
- java窗体背景图片_java 窗体设置背景图片问题 (附上登陆界面代码,我想加个背景图...
- python day 07
- 教师妹学python之五:数据结构
- [书摘]金玉良缘(摘自:幽默大师林语堂 作者:朱艳丽)
热门文章
- 鸿蒙开发蓝牙耳机怎么连接手机,漫步者蓝牙耳机怎么配对?按照这个步骤操作即可...
- “问世间情为何物,直教生死相许"是写人间爱情吗?
- 基于SpringBoot的家政服务管理平台
- Python 实现L2范数的计算
- JAVA的OPENGL,JOGL入门例子(四)----富视觉的螺旋体
- Makefile中的双冒号规则
- Mybatis-plus开启或者关闭SQL日志打印
- [洛谷]P3353 在你窗外闪耀的星星 (#树状数组)
- 淘宝APP产品升级:首页聚焦转化和运营效率「买家秀」社区升级为 「逛逛」
- ios 开发百度地图的使用