第8.12节 Python类中使用__dict__定义实例变量和方法

Python 字典dict操作详解-Python字典的排序创建读取修改复制浅复制…… 总结一下字典的基本用法。内容参看目录,个人认为还是比较详细的。 目录 1. 什么是字典 2.字典的创建 2.1 手动创建 2.2 使用内置函数dict()创建 3. 字典元素的读取 3.1下标方式读取Value 3.2 get()读取Value 3.3 keys()方法返回“键”  3.4 values()方法返回“值” 3.5 items()方法返回“键-值”对 4. 字... 阅读详情

上节介绍了使用实例的__dict__查看实例的自定义属性,其实还可以直接使用__dict__定义实例变量和实例方法。
一、 使用__dict__定义实例变量

  1. 语法:
    对象名. dict[属性名] = 值
  2. 语法释义:
    “对象名”为要增加实例变量的对象,如果是在实例方法中,应该为”self”。
    属性名为要定义实例变量的名字,必须是字符串类型,即变量名必须用引号。
    上述语法相当于:
    对象.属性 = 值。
    这是由于Python中所有变量都存在对应名字空间的字典中,定义变量就是增加一个字典的元素。

二、 使用__dict__定义实例方法

  1. 语法:
    对象名. dict[属性名] = 函数名
  2. 语法释义:
    “对象名”为要增加实例变量的对象,如果是在实例方法中,应该为”self”,关于self,请参考《第7.5节 揭开Python类中self的面纱》。
    属性名为要定义实例方法的名字,必须是字符串类型,即变量名必须用引号。
    三、 案例
  3. 案例说明
    例子中定义了一个类Car,在该类的构造方法中使用__dict__增加了一个实例变量和一个drive方法,其中drive方法与self的绑定使用了《第7.14节Python类中的实例方法解析》中介绍的MethodType。定义类后我定义一个实例,来访问通过__dict__增加的实例变量和实例方法。
  4. 源代码(交互模式)
>>> from types import MethodType #导入MethodType方法
>>> def fdrive(self,distance):self.totaldistance += distance  #定义一个函数,准备用于赋值给类的实例方法属性

>>> class Car():
    def __init__(self, power):
        self.power = power
        self.__dict__['totaldistance'] = 10  #使用__dict__定义实例变量
        self.__dict__['drive'] = MethodType(fdrive,self)  #将函数赋值给drive方法,并与self绑定
        
>>> car = Car('汽油发动机')
>>> car.drive(103)
>>> car.totaldistance
113
  1. 执行截屏
    在这里插入图片描述
    为了简单说明,我们只介绍在实例方法中使用__dict__定义实例变量和实例方法,实际上与动态定义实例变量和方法一样,使用__dict__一样可以在类体外定义实例变量和方法。只是把实例方法中定义的方法的调用者由”self”改成”实例对象”即可。在此就不展开说了。
    本节结合案例介绍了直接使用类中的__dict__定义实例变量和实例方法,本身这种实现方式没有多大价值,只是为了说明类中属性的定义本质上就是操作__dict__的元素。
    老猿Python系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
    欢迎大家批评指正,谢谢大家关注!
Python类与对象详解 阅读详情

相关推荐

28.Python面向对象(一)【类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性】

28.Python面向对象(一)【类的基础入门:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性】

孤寒者的博客 3万+

python之__dict__方法使用

python版本:3.6 本文章仅供学习记录用,如有侵权,告知删除。 1、类的__dict__属性和类对象的__dict__属性 结论: a、类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类__dict__里的 b、对象的__dict__中存储了一些self.xxx的一些东西 实例: class TestName: a = 2 b = 2 def __init__(self,c): self.a = 0 self.b = 1

m0_57133702的博客 1万+

python的类变量与实例变量以及__dict__属性

python的类变量与实例变量以及__dict__属性

jacke121的专栏 2791

Python中__dict__用法

python中__dict__用法

qq_43797260的博客 1742

传输线的特征阻抗

信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输入端或输出端处于阻抗匹配状态,简称为阻抗匹配。否则,便称为阻抗失配。有时也直接叫做匹配或失配。指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。- 对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;

学海无涯的专栏 4464

24V供电D1047/B817对管AB类音频功放设计与制作全解析

音频功率放大器是电子系统将微弱音频信号放大驱动扬声器的核心电路,其核心原理是通过晶体管或集成电路对信号进行电压和电流放大。从技术价值看,优秀的功放设计需兼顾效率、保真度与稳定性,AB类放大器便是经典折中方案,它在A类低失真与B类高效率间取得平衡。在应用场景上,这类电路广泛应用于家用音响、多媒体音箱、车载音频及DIY音频项目。本文聚焦于一个采用24V直流供电、以D1047和B817互补对管为核心输出级的AB类功放实例,深入剖析其**电路设计**与**元件选型**,涵盖从BC547小信号放大、偏置设置、PCB布

weixin_31355483的博客 413

python——类和对象之__dict__属性的使用

在 Python 类的内部,无论是类属性还是实例属性,都是以字典的形式进行存储的,其中属性名作为键,属性值作为对应的值。 __dict__,可以使用类名或者类的实例对象来调用, 用类名直接调用__dict__,会输出该类中所有类属性和方法组成的字典; 用类的实例对象调用__dict__,会输出该类中所有实例属性组成的字典;因为方法定义在类中,对象中没有定义方法,只是可以去调用类中的方法。 例如: print(dog.dict) 执行结果为: {‘name’: ‘小狗’, ‘age’: 6, ‘color’

python全栈 2664

VS2022 LNK1168无法打开进行写入 解决办法

C语言编程---VS---错误和警告---链接器工具错误---LNK1168--无法打开进行写入

weixin_67166415的博客 7155

python的__dict__、__name__和__file__的用法和区别详解

文章目录1. __dict__的用法1) 用在文件上2) 用在类上3) 用在类的对象上2.__name__的用法3.__file__的用法 1. __dict__的用法   __dict__可以作用在文件、类或者类的对象上,最终返回的结果为一个字典。 1) 用在文件上   能够获取到文件里所有的字典、元组、列表等属性,返回结果为一个字典。如,返回demo_test_dict文件里所有定义的字典、元组、列表等信息, from polls.python_study.study__dict__and__name_

Dream_it_possible!的博客 4558

基于ensp大学网络规划与设计(完整文档+ensp拓扑图)

大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践,我积累了丰富的计算机知识和经验,在这里我想与大家分享我的学习心得和技巧,帮助你成为更好的程序员。 作为一名计算机博主,我一直专注于编程、算法、软件开发等领域,在这些方面积累了大量的经验。我相信分享是一种双赢的方式,通过分享,我可以帮助他人提升技术水平,同时也能够得到学习交流的机会。 在我的文章中,你将会看到我对于各种编程语言、开发工具以及常见问题的解析和分析。我会结合自己的实际项目经验,为你提供实用的解决方案和优化技巧。我相信这些经验不仅能够

qq1325513482的博客 5万+

AI漫剧实战:MiniMaxH3本地部署+ComfyUI工作流,6G显存出长视频

随着AI视频生成技术的普及,创作者开始追求在有限硬件条件下的本地化部署。本地部署不仅降低使用成本,更能获得对生成流程的完全可控性,这为高频次的内容生产提供了基础。以开源工作流引擎ComfyUI为依托,通过量化模型与显存优化,即便是6G显存的中端显卡也能流畅运行MiniMaxH3视频生成模型,输出60秒级别的AI漫剧片段。本文从视频生成原理出发,讲解模型选择、节点搭建、参数调优与提示词结构化设计,并延伸到剧本拆分、角色一致性控制、后期合成及平台变现路径,为AI漫剧创作者提供一套低成本、可复制的工程化方案。无论

weixin_29051149的博客 159

第8.28节 Python中使用__setattr__定义实例变量和实例方法

一、 引言 根据前面章节介绍的内容,我们知道实例变量、实例方法的定义可以通过以下方法进行: 在类体中直接定义实例变量、实例方法; 在实例方法中定义实例变量、实例方法; 在类体外调用方使用赋值语句赋值定义实例变量、实例方法; 给实例的__dict__字典中插入元素定义实例可以定义实例变量。 其实还有一种方法,就是调用object类的__setattr__方法,也可以在实例方法或类体外定义实例变量、...

老猿Python 3629

华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)

华为数通HCIP H12-831多选题

didiplus 1291

第8.11节 Python类中记录实例变量属性的特殊变量__dict__

一、 语法释义 调用方法:实例. __dict__属性 __dict__属性返回的是实例对象中当前已经定义的所有自定义实例变量的名和值,用字典存储,每个元素为一个“实例变量名:值”对,如果某个方法中也新定义了实例变量但还没执行,则该实例变量不会列出。 注意:是实例变量不含特殊变量、不含方法,但包含父类中定义的实例变量。 二、 举例说明 定义Vehicle类和Car类,Vehicle类是父类,Car...

老猿Python 1981

set_input_delay/set_output_delay介绍

针对这一类的情况,在做block时,cts之后,便需要将update_io_latency给关闭。那么,计算的timing就是错误的了。对于hier flow来讲,切分block,进行timing budget的时候,clock tree还未长。计算block端口上的timing,通常需要用到set_input_delay和set_output_delay告知工具外部电路的延迟信息,以方便工具计算端口上的timing。此时,工具在计算in2reg的timing时,便会将2.67ns的delay带进来。

芯冰乐 318

机器人控制算法九之 位姿描述与空间变换

机器人控制算法九之 位姿描述与空间变换

yohnyang的博客 1031

python 类 中 __dict__ 赋值变量

python类中__dict__属性返回的是实例对象中当前已经定义的所有自定义实例变量的名和值,为字典的形式 class Persion(): def __init__(self,par1,par2,par3,par4): self.par1 = par1 self.par2 = par2 self.par3 = par3 self.par4 = par4 def female(self): pass def male(self): pass P = Persion("a

qq_42962326的博客 1456

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python的类变量和实例变量_python的类变量与实例变量以及__dict__属性

关于Python的实例变量与类变量,先来看一段可能颠覆世界观的例子1 #!/usr/bin/env python2 #-*- coding: utf_8 -*-3 #Date: 2016年10月10日4 #Author:蔚蓝行56 #首先创建一个类cls,这个类中包含一个值为1的类变量clsvar,一个值为2的实例变量insvar,7 classcls:8 clsvar = 19 ...

weixin_39606177的博客 93

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python的类变量和实例变量_Python的类变量与实例变量以及__dict__属性

关于Python的实例变量与类变量,先来看一段可能颠覆世界观的例子#!/usr/bin/env python# -*- coding: utf_8 -*-# Date: 2016年10月10日# Author:蔚蓝行#首先创建一个类cls,这个类中包含一个值为1的类变量clsvar,一个值为2的实例变量insvar,class cls:clsvar = 1def __init__(self):se...

weixin_39573512的博客 105

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第8章 Python类中常用的特殊变量和方法目录

第8章 8.1节 Python类中常用的特殊变量和方法 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 第8.4节 Python类中不是构造方法却胜似构造方法的__new方法__深入剖析:语法释义 第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执...

老猿Python 1557

Python 类变量与实例变量:访问步骤演示与技巧总结

特性类变量 (Class Variable)实例变量 (Instance Variable)定义位置在类的内部,所有方法的外部。在类的方法内部,通常是在__init__方法中。所属对象属于类本身。属于类的每个具体实例(对象)。内存存储所有实例共享同一份内存空间。每个实例都拥有自己独立的内存空间。主要用途存储所有实例共享的数据,如计数器、默认配置等。存储每个实例独有的数据,如对象的属性。明确用途如果一个值对于类的所有实例都是相同的,并且不希望被轻易改变,就用类变量。例如,圆周率pi。

2501_93847318的博客 1251

python随笔之__dict__方法

引自:https://www.cnblogs.com/duanv/p/5947525.html 博主在这一篇文章中引入了一个很好的例子 1 #!/usr/bin/env python 2 # -*- coding: utf_8 -*- 3 # Date: 2016年10月10日 4 # Author:蔚蓝行 5 6 #首先创建一个类cls,这个类中包含一个值为1的类变量clsv...

qq_41400572的博客 961

class中__dict__的理解,Python3

class Friends():       #定义一个类    def __init__(self):                     self.name = 'wuq'         #两个实例变量        self.gender = 'female'    def say_to_friend():     #有一个方法        print('hello %s'%self...

sinat_41701878的博客 8582
上一篇: 第8.11节 Python类中记录实例变量属性的特殊变量__dict__
下一篇: Python中使用eval执行下面函数的结果怎么是字符串'10020'?
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值