python类实例方法的形参self并未做类型限定,只会在运行时做类型检查

【OCPP】ocpp1.6J协议框架说明 本文档的目的是为读者提供创建正确的可互操作 OCPP JSON 实现 (OCPP-J) 所需的信息。我们将根据我们自己的经验,尝试解释什么是强制性的、什么是良好做法以及什么是不应该做的。毫无疑问,误解或歧义仍然存在,但我们旨在通过本文件尽可能地防止它们。IANA:互联网数字分配机构(OCPP-J:使用JSON通过WebSocket进行OCPP通信。特定的OCPP版本应使用J扩展进行指示。OCPP1.5J表示我们正在讨论1.5版本的JSON/WebSocket实现。 阅读详情

类实例调用类实例方法时默认传入类实例给第一个self形参,self并未限定类型,只在运行时做类型检查

class Myclass(object):
    def info(self):
        print(self, "this is instance func info()")
    def info2(self):
        print(self.a, "this is instance func info2()")


class Myclass2(object):
    def __init__(self, a):
        self.a = a

obj1=Myclass()
obj1.info()       #类实例调用类实例方法时默认将类实例传给self
Myclass.info(obj1)#也可以使用类名并传入类实例来调用类实例方法

strobj='heihei'
Myclass.info(strobj)#并未限定形参self的类型(动态语言),只在运行时会进行类型检查,此例中由于所有对象都能被"打印"所以也没毛病

obj2=Myclass2('haha')
Myclass.info2(obj2)#在运行时会检查self形参的a属性,此例中由于传入对象有属性a所以没毛病

Myclass.info2(strobj)#在运行时检查self形参的a属性,此例中由于传入对象无属性a所以报属性错

python3.8运行输出:

haypin@ubt:~/Files$ python3.8 m07164.py
<__main__.Myclass object at 0x7f78daa65fd0> this is instance func info()
<__main__.Myclass object at 0x7f78daa65fd0> this is instance func info()
heihei this is instance func info()
haha this is instance func info2()
Traceback (most recent call last):
  File "m07164.py", line 22, in <module>
    Myclass.info2(strobj)#在运行时检查self形参的a属性,此例中由于传入对象无属性a所以报属性错
  File "m07164.py", line 5, in info2
    print(self.a, "this is instance func info2()")
AttributeError: 'str' object has no attribute 'a'
haypin@ubt:~/Files$

 

 

用类的实例对象访问类成员的方法称为绑定方法(默认将实例对象传递给实例方法的self形参),而用类名调用类成员的方法称为非绑定方法。

 
SAP_SD模块_SAP 消息号VF501(科目确定期间出错) 摘要: SAP SD模块中执行VF02销售开票时出现“科目确定期间出错”(VF501)问题,主要原因是系统无法找到匹配的总账科目。解决方案包括:检查物料主数据和客户主数据中的科目分配组是否维护,核对发票中的对应字段,并通过VKOA事务代码分析科目确定逻辑。若定价过程中配置的科目代码(如Z01)未在VKOA中完整映射(如缺少H1+S5+Z01组合),则会导致内部价格无法关联总账科目。需在SPRO路径下完善科目代码分配配置,确保定价类型与科目代码匹配。本文提供了详细的排查步骤和配置方法,帮助解决开票过账错误。 阅读详情

相关推荐

ANSYS Fluent DPM实战:从单点到锥形注入的粒子模拟全流程解析

本文深度解析了ANSYS Fluent中离散相模型(DPM)的粒子注入(Injection)设置全流程。从单点注入到锥形喷雾,详细阐述了不同注入类型的物理本质、参数逻辑与适用场景,并提供了粒径分布、湍流扩散等高级参数设置技巧与实战避坑指南,帮助工程师精准模拟喷雾、粉尘等粒子运动行为。

weixin_29276847的博客 654

python类中调用类方法时,报错self参数未填。

又碰到了一个小错误 比如一个类如下: class print_number(object): def __init__(self,string="数字是"): self.string=string def print_(self,ss=3): print("{}:{}".format(self.string,ss)) //实例化类 p=print_number p.print_() 这个时候会报错,p.print_的self参数未填。这是

qq_52095705的博客 1万+

Windows 11安装realtek audio control

Windows 11安装realtek audio control,解决无法链接RPC问题

m0_46144825的博客 8万+

python 使用class类时 提示 未填形参self

形参 'self' 未填

vip88886666的博客 3745

A Super-Resolution Imaging Method for Forward-Looking Scanning Radar Based on Improved TV论文阅读

具体而言,作者提出了一种改进的总变差(Improved Total Variation, ITV)方法,通过引入。论文旨在解决前视扫描雷达(Forward-Looking Scanning Radar)超分辨率成像中传统。(Batch Processing),以增强图像边缘特征的保留能力,并提升计算效率。论文的核心创新点在于对传统TV正则化的邻域梯度计算进行扩展,提出。ITV剖面(图3d)在噪声下仍保持矩形边缘,仅存。​(公式10):实现稀疏约束。),抑制远端单元贡献。(幅度远低于目标)。

yangqoor的博客 1240

ECharts 实现世界地图

效果图 源代码(仅供参考) <template> <div class="echarts"> <div class="className" id="id" style="width: 100%; height: 450px" ref="myEchart" ></div> </div> </template> <script lang="ts"> imp

EsquireY的博客 4874

python 函数参数self_Python self用法详解

在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数。例如,定义一个 Person 类:class Person:def __init__(self):print("正在执行构造方法")# 定义一个study()实例方法def study(self,name):print(name,"正在学Python")那么,self 到底扮演着什么...

weixin_39598308的博客 979

ROS基础(一)——命令行代码(以小乌龟程序为例)

ROS学习(一)——命令行代码(以小乌龟程序为例)1 基础命令行语句1.1 roscore1.2 rqt_graph(显示系统计算图)1.3 rosnode(显示所有节点相关信息)1.4 rostopic(和话题相关)2 服务类型指令rosservice同时存在两只海龟3 指令记录 1 基础命令行语句 从大二四旋翼无人机编队后就没再接触过ROS了,最近由于科研任务需要重新捡起来,打算系统学一下!学习过程参考古月居老师的视频,有兴趣的同学可以去[BliBli]学习。 学习平台:Ubuntu 18.04 硬件

北理自动化小白 6266

Eclipse函数没有自动填写函数形参解决方法

如图我们写的函数如果选择带参的方法,应该会自动补全如下图 若出现这种问题如下图,没有了参数的形参自动填写 解决方法如下进入eclipse的菜单栏 Window-->Preferences-->java-->Editor-->Content Assist 然后把图中箭头的选项勾选上即可调用函数时自动把形参填写上 ...

qq_36623595的博客 1097

GEE 案例:利用多源遥感数据计算RUSLE(Revised Universal Soil Loss Equation)土壤侵蚀

该数据集提供了全球范围内以250至500米的空间分辨率获取的多光谱图像数据,用于监测地表覆盖和变化。RUSLE模型的基本原理是通过考虑土壤侵蚀的主要驱动因素,来估计土壤侵蚀的速率。该数据集提供了全球范围内以10至60米的空间分辨率获取的多光谱图像数据,用于监测地表覆盖和变化。它对农业和土地资源管理者提供了一种评估和预测土壤侵蚀风险的工具,以制定适当的土壤保护措施和决策。2. soil(土壤)是来自OpenLandMap的土壤纹理分类数据,使用了USDA(美国农业部)土壤纹理分类系统。

此星光明博客 803

整理 钢琴 约翰·汤普森现代钢琴(大汤)

大汤

TS的博客 3997

小福利,python中子类继承父类的一些注意点

大家好,我是天空之城,今天给大家带来小福利,python中子类继承父类的一些注意点 class Person: def __init__(self): self.name = "jack" class Student(Person): def __init__(self): super(Student, self).__init__() #这一行不可以省略 self.name='tom' self.school = "一中"

littlespider889的博客 727

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python 基础入门:Java 开发者视角

Python与Java核心概念差异对比 摘要 本文面向有Java经验的开发者,通过对比两种语言的核心概念差异,帮助快速建立Python的正确思维模型。主要内容包括: 环境与工具链:Python使用VS Code开发、pip/poetry管理依赖,强调虚拟环境隔离 核心概念对比: 类型系统:Java是静态强类型,Python是动态强类型 执行方式:Java需要编译,Python直接解释执行 入口点:Java强制main方法,Python通过if __name__ == "__main__":实现可选入口 模块

m0_54123999的博客 262

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python笔记

my_name='陈志隆'print('luck_number的数据类型是',type(luck_number))# python 可以动态修改变量的数据类型 通过赋不同类型的值,就可以修改luck_number='北京欢迎你'# python中允许多个变量指向同一个值运行后输出如下:D:\Anaconda\envs\run\python.exe D:\Pycharm\Project\Basic\示例3-3变量的定义和使用.pyluck_number的数据类型是 <class 'int'>

weixin_55944609的博客 137

python3 核心笔记

本文主要是针对python3的一些核心要点做一些记录,感兴趣的可以关注和订阅。会持续更新,这个玩意学习一下,可以为数据分析和AI打下一定的基础。

yanghuashuiyue的专栏 617

Python面试知识点小结

一.Python基础   1.Python语言特性:     动态型(运行期确定类型,静态型是编译型确定类型),强类型(不发生隐式转换,弱类型,如PHP,JavaScript就会发生隐患式转换)   2.Python作为后端语言的优缺点:     优点:       胶水语言,轮子多,应用广泛;语言灵活,生产力高     缺点:       性能问题,代码维护问题,python2/3...

weixin_34160277的博客 792

Python对象模型差异剖析:从__slots__到绑定方法的机制详解

Python的类与实例并非简单蓝图,理解对象模型是掌握动态语言核心的必经之路。许多开发者在实战中会遇到同类不同表现的现象:有的实例可随意添加属性,有的却抛出AttributeError;有的实例方法调用正常,有的却提示缺少self参数;甚至两个字段完全相同的对象无法在集合中去重。这些问题的根源往往在于属性查找链路、__dict__与__slots__的内存设计、类属性与实例属性的隔离边界,以及__eq__与__hash__的一致实现。深入剖析这些底层机制,能帮助开发者写出更健壮的代码,尤其在ORM、数据校验

weixin_28331555的博客 340

MCP协议:大模型与工具间标准化调用的工程实践指南

MCP(Model Context Protocol)是一种面向生产环境的大语言模型工具调用通信协议,其核心是通过JSON Schema驱动的双向契约机制,实现模型意图与系统执行之间的语义对齐。它不替代Agent框架,而是作为底层通用接口规范,解决Function Calling中常见的参数失真、错误模糊、跨模型兼容差等工程痛点。凭借极简消息类型、零信任安全设计和严格分层架构,MCP显著提升调试可观测性、接口变更响应速度与多工具协同可靠性,已成为智能体系统在政务、金融等高确定性场景落地的关键基础设施。

weixin_30399155的博客 343

小红书iOS岗秋招笔试复盘:考点分析与算法实战

在互联网大厂技术招聘中,笔试环节不仅考查基础算法,更关注候选人的工程实践能力。以iOS开发岗位为例,一场笔试往往覆盖网络、操作系统、内存管理以及UIKit等核心知识点,同时通过滑动窗口、动态规划、拓扑排序等经典算法题,检验解题思路与边界处理能力。对于小红书这类业务型公司,客户端笔试还会融入贴近真实业务的场景题,如循环引用判断、UIStackView约束异常、系统蓝牙状态区分等,要求开发者具备扎实的iOS底层理解与项目经验。基于2023年秋招第三批笔试的完整复盘,梳理客观题考点、算法题解题过程及在线笔试环境注

weixin_33816946的博客 336

前端第一节(html&css&javascript)

这是内容1这是内容2这是内容3这是一个有序列表这是有序列表1这是有序列表2这是有序列表3这是有序列表4自定义列表内容1

2301_79941274的博客 1418

专业 英语

计算机、数学、机械等专业的专业英语词汇

Edward2022的博客 2946

Python 类self 详解

编写类中的函数时,不写self会报错 没有self可以运行,通过类函数来使用 一个形象的理解self变量 解释 类是一个Python类,每个个体的人代表着实例(对象) 而每个人的身份证代表的Python中self 每个人可以凭借身份证去做核酸、乘火车、住酒店…(方法), -而Python中的 总结 实例对象

weixin_44943389的博客 953

python装饰器

1、装饰器简介 装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对...

weixin_41321563的博客 315

python self用法详解

对于在类体中定义的实例方法,Python 会自动绑定方法的第一个参数(通常建议将该参数命名为 self),第一个参数总是指向调用该方法的对象。根据第一个参数出现位置的不同,第一个参数所绑定的对象略有区别: 在构造方法中引用该构造方法正在初始化的对象。 在普通实例方法中引用调用该方法的对象。 由于实例方法(包括构造方法)的第一个 self 参数会自动绑定,因此程序在调用普通实例方法、构造方...

Python零基础入门学习 7679
上一篇: python赋值表达式执行过程的理解,通过运行variable=locals()来理解
下一篇: python相对路径导包|模块
HayPinF
博客等级 码龄9年 175粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值