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

python的魔法方法

python类中的self是什么?

对象的方法都会有一个self参数,类比于c++,self就相当于c++的this指针。
由一个类可以生成无数个对象,当一个对象的方法被调用时,对象会讲自身的引用作为第一个参数传给该方法,那么python就知道需要操作哪个对象的方法了。
例子

class Ball:def setName(self,name):self.name=namedef kick(self):print("我叫%s,噢~谁踢我?"%self.name)

实例化:

a=Ball()
a.setName('流星')
b=Ball()
b.setName('地球')
c=Ball()
c.setName('火星')a.kick()
b.kick()
c.kick()

输出:
我叫流星,噢~谁踢我?
我叫地球,噢~谁踢我?
我叫火星,噢~谁踢我?

python的__init__()魔法方法

据说,python的对象天生拥有一些 神奇的方法,他们是面向对象的python的一切,他们是可以给类增加魔力的特殊方法,如果对象实现了这些方法中的某一个,那么这个方法就会在特殊的情况下被python调用,而这一切是自动发生的。

python的这些具有魔力的方法,总是被左右两个下划线包围,这里就讲其中一个基本的特殊方法,init()。

通常把__init__()方法称为构造方法,init()方法的魔力体现在只要实例化一个对象,这个方法就会在对象被创建时自动调用,其实,实例化对象时是可以传入参数的,这些参数会自动传入__init__()方法中,可以通过重写这个方法来自定义对象的初始化操作。

例子:

class Potato:def __init__(self,name):self.name=namedef kick(self):print("我叫%s,噢~谁踢我?"%self.name)

实例化:

p=Potato('流星')
p.kick()

输出:
我叫流星,噢~谁踢我?

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 虚拟现实3d场景漫游体验实现了“所见即所得”
  • TCP粘包
  • 如何搭建一个新生录取查询系统
  • pytorch通过 tensorboardX 调用 Tensorboard 进行可视化
  • Pyspider WebUI 未授权访问致远程代码执行漏洞复现
  • 深入剖析预处理
  • 【LabVIEW学习篇 - 5】:数据类型——数值、字符串
  • RockYou2024 发布史上最大密码凭证
  • cs也能上线liunx马??你会吗???解决木马生成的操作。
  • 化工厂人员定位系统有怎样优势?
  • Zynq系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTX高速接口,提供3套工程源码和技术支持
  • java花店管理系统eclipse开发mysql数据库
  • 【java12】Collectors和Completionstage的新API
  • 揭秘“消费即赚”的循环购模式
  • [matlab]周期性信号分析
  • SegmentFault for Android 3.0 发布
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • #Java异常处理
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • ERLANG 网工修炼笔记 ---- UDP
  • es的写入过程
  • EventListener原理
  • Laravel 菜鸟晋级之路
  • node.js
  • Redis 中的布隆过滤器
  • 对象引论
  • 搞机器学习要哪些技能
  • 区块链将重新定义世界
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 你对linux中grep命令知道多少?
  • 容器镜像
  • #100天计划# 2013年9月29日
  • #java学习笔记(面向对象)----(未完结)
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计大学生兼职系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)linux文件内容查看
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (五)MySQL的备份及恢复
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转) Face-Resources
  • (转)程序员疫苗:代码注入
  • **python多态
  • *算法训练(leetcode)第四十天 | 647. 回文子串、516. 最长回文子序列
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 8.0 中有哪些新的变化?
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net开发时的诡异问题,button的onclick事件无效
  • .net与java建立WebService再互相调用