详解Python中def __init__(self)与def __init__(self.参数1、参数2······)的区别

2023-05-16

两者的主要区别

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 = None
         self.score = None

#def __init__(self.参数1、参数2······)结构
class student:
     def __init__(self, name, score):
         self.name = name
         self.score = score
  1. 初始化附参数的表达方式不同,结构2的self,name一定要指向上面的参数
#def __init__(self)结构
class student:
     def __init__(self):
         self.name = A
         self.score = 18
#def __init__(self.参数1、参数2······)结构
class student:
     def __init__(self, name=A, score=18):
         self.name = name
         self.score = score

  1. 实例化时的方法不同
    结构体1在实例化时需要先引用结构体,在结构体里进行参数更改
#def __init__(self)结构
class Student:
    def __init__(self):
        self.name = None
        self.score = None

    def print_score(self):
        print("%s score is %s" % (self.name,self.score))

if __name__ == '__main__':
      # 创建对象s1
    s1 = Student()
    s1.name = "b"
    s1.score = 20
        
    s1.print_score()
    print(s1.__dict__)#看属性

结构体2在实例化时需要先引用结构体,在引用体的括号里进行更改

#def __init__(self.参数1、参数2······)结构
class Student:
    def __init__(self,name,score):
        self.name = name
        self.score = score

    def print_score(self):
        print("%s score is %s" % (self.name,self.score))

if __name__ == '__main__':
      # 创建对象s1
    s1 = Student("b",20)
    s1.print_score()
    print(s1.__dict__)#看属性

总结

两种方式的使用方法上略微有区别,但功能上是一致的,习惯哪个用哪个就行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解Python中def __init__(self)与def __init__(self.参数1、参数2······)的区别 的相关文章

随机推荐

  • 【自学Docker】Docker push命令

    大纲 Docker push命令 docker push命令教程 docker push 命令用于将本地的 Docker镜像 上传到 Docker镜像仓库 docker push命令使用之前需要要先登陆到镜像仓库 docker push命令
  • 【自学Linux】Linux运行级别

    Linux运行级别 Linux运行级别教程 Linux 可以支持运行级别的设置 xff0c 运行级别就是操作系统当前正在运行的功能级别 xff0c 级别是从 0 到 6 Centos7 系统之前的版本是通过 etc inittab 文件来定
  • 【自学Linux】 Linux文件目录结构

    Linux文件目录结构 Linux文件目录结构教程 在 Linux 中 xff0c 有一个很经典的说法 xff0c 叫做一切皆文件 xff0c 因此 xff0c 我们在系统学习 Linux 之前 xff0c 首先要了解 Linux 的文件目
  • 【自学Linux】Linux一切皆文件

    Linux一切皆文件 Linux一切皆文件教程 Linux 中所有内容都是以文件的形式保存和管理的 xff0c 即一切皆文件 xff0c 普通文件是文件 xff0c 目录是文件 xff0c 硬件设备 xff08 键盘 监视器 硬盘 打印机
  • 链路聚合--Eth-Trunk

    链路聚合技术是解决二层交换机多条链路产生环路的问题 xff0c 不仅避免了环路问题 xff0c 还提高了数据的传输效率 链路聚合分为两种模式 xff1a 手动模式和LACP模式 手动模式 手动模式就是人工的方式去创建Eth Trunk和成员
  • 块元素和内联元素的特点和区别

    lt css基础之块级元素和内联元素 块级元素的特点 xff1a 1 占一整行 2 是一个矩形 3 可定义宽度和高度 xff0c 内边距 xff0c 外边距等 4 其display属性默认为block 内联元素的特点 xff1a 1 并不占
  • 在vs code中使用git

    在vs code使用git 1 下载安装git 下载地址 xff1a Git Downloads 下载后安装选择默认选项即可 2 安装完成后 xff0c 设置git的环境变量 xff1a 在系统的path环境变量中添加git exe的安装目
  • Ubuntu下压缩与解压缩

    一 linux下常用的压缩格式 linux下常用的压缩扩展名有 xff1a tar tar bz2 tar gz 二 Windows下7ZIP软件的安装 因为Linux下很多文件是bz2 gz结尾的文件 xff0c 因此需要在windows
  • VIO的图优化模型

    因子图结构 VIO在纯视觉的基础上添加了IMU约束 xff0c 因子图如下 xff1a 状态变量 VIO中 xff0c 待估计的状态变量为 i 61 R
  • CMakeLists写法总结

    个人最近学习了一些关于常见的CMakeLists的一些写法格式 xff0c 分享给大家 CMAKE MINIMUM REQUIRED VERSION xxx 该项表示要求CMAKE的最低版本号 PROJECT aim1 此项表示所建立的工程
  • Qt两种传参形式(信号槽传参、界面传参)

    一 UI界面传参 在Qt中传输数据通常有两种形式 xff0c 一种是把待传输的数据先保存到UI界面的控件中 xff0c 然后子类从界面中读取数据 使用该控件作为参数传递承载 1 首先将计算出的数值传到控件中 ui span class to
  • Intel RealSense T265 Windows10 环境下运行

    Intel RealSense T265 Windows10 环境下运行 最近从某宝上买了个T265 体验了下 intel的硬件开发 卖家怕我不会用还专门问了我会不会用 intel的包装里面不带那个很酷炫的三脚架 xff01 xff01 x
  • TB6612FNG电机驱动替代方案

    最近东芝的一个很常用的电机驱动芯片TB6612FNG停产 xff0c 这是一个全桥驱动芯片 xff0c 经过测试 xff0c 两款比较好的替代芯片有ST公司的L298系列 xff0c L293D系列和VNH5019系列的全桥驱动器 这里的完
  • 关于链表中头指针和头结点的理解

    线性表使用顺序 xff08 数组 xff09 存储时有个弊端 xff0c 那就是在插入和删除时需要大量的移动数据 xff0c 这显示是非常消耗时间的 xff0c 所以可以采用链式存储 xff0c 即有一个指针域 xff08 单链表 xff0
  • 相对深度与绝对深度,深度图与真实距离

    刚开始看单目深度估计 xff0c 好多概念都不清楚 xff0c 下面是我的理解 xff0c 有不对之处希望大佬指出 首先是相对深度和绝对深度的概念 绝对深度就是利用激光雷达等设备获取的相机与物体之间的距离 xff0c 比如KITTI数据集就
  • Gazebo和ROS通信实现发球

    ROS版本 xff1a ROS Kinetic 操作系统 xff1a Ubuntu16 04 LTS YouTube上有一个视频 xff0c 是一个乒乓球机器人在gazebo里面的方针 https www youtube com watch
  • apt: 如何通过apt-get 来安装自己的程序-----apt本地源的学习

    本文档介绍使用apt mirror软件搭建apt本地源 需求 xff1a 内网开发环境由于其特定原因不能上外网 xff0c 所以需要本地环境下的内网源来方便开发人员下载安装软件 建议 xff1a 单独使用一块磁盘来存放源文件或者单独一个目录
  • Gazebo中加入一个双目相机及相机参数设置

    ROS版本 xff1a ROS Kinetic 操作系统 xff1a Ubuntu16 04 LTS kinect 为了在gazebo中观察并利用利用视觉进行小球的定位并与ros通信 xff0c 我们需要一个深度相机 xff0c 这时可以直
  • 树莓派4B开机运行自己的QT5程序,不进入图形化界面。

    最近做项目 xff0c 遇到一个需求 xff0c 使用树莓派连接显示屏 xff0c 但是为了保密性 xff0c 不能进入桌面 xff0c 直接运行自己的图形化界面 刚开始翻阅了很多网友大神写的教程 xff0c 但是在树莓派方面 xff0c
  • 详解Python中def __init__(self)与def __init__(self.参数1、参数2······)的区别

    两者的主要区别 1 初始化参数为空的表述方式不同 2 初始化附参数的表达方式不同 结构2的self name一定要指向上面的参数 3 实例化时的方法不同 def init xff08 self xff09 与def init xff08 s