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

【init和selft】Python中__init__和self的意义和作用

由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。以学生类为例,通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:

class Student(object):

def __init__(self, name, score):
    self.name = name
    self.score = score

注意:特殊方法“__init__”前后分别有两个下划线!!!

注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:

>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59

和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。
原文:https://blog.csdn.net/github_40122084/article/details/79375369

相关文章:

  • 【多线程】Linux下c语言多线程编程---学习
  • 【python】Series和DataFrame的简单介绍
  • 【闭包】Python中的闭包
  • 【线程池】C语言实现的简单的线程池
  • 【互斥锁和条件变量】何时互斥锁不够,还需要条件变量?
  • 【malloc和calloc】malloc和calloc函数区别
  • 【pthread_detach/pthread_join】pthread_detach()与pthread_join的区别?
  • 【时间复杂度】时间复杂度
  • 【Dll调试】DLL调试方法
  • 【机器学习】线性回归数学推导
  • 【VS消除警告】VS消除特定警告/安全函数警告C4996 strncpy unsafe……
  • CSDN 博客备份工具
  • 【FTP】linux FTP传文件到windows
  • 【VS】在VS中添加lib库的三种方法
  • 【合并lib】windows下多个lib合并的方法|查看lib是导入库还是静态库
  • __proto__ 和 prototype的关系
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《Java编程思想》读书笔记-对象导论
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 230. Kth Smallest Element in a BST
  • Apache Spark Streaming 使用实例
  • CODING 缺陷管理功能正式开始公测
  • const let
  • Elasticsearch 参考指南(升级前重新索引)
  • es6(二):字符串的扩展
  • es6--symbol
  • Redux系列x:源码分析
  • uni-app项目数字滚动
  • vue 个人积累(使用工具,组件)
  • vue学习系列(二)vue-cli
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 一个JAVA程序员成长之路分享
  • 【干货分享】dos命令大全
  • 阿里云API、SDK和CLI应用实践方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #stm32整理(一)flash读写
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (顺序)容器的好伴侣 --- 容器适配器
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)JAVA中的堆栈
  • (转)可以带来幸福的一本书
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .CSS-hover 的解释
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net core 依赖注入的基本用发
  • .Net MVC + EF搭建学生管理系统
  • .NET 中创建支持集合初始化器的类型
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net和jar包windows服务部署