热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python是动态语言:动态添加或删除属性、方法

Python是动态语言:动态编辑属性、动态编辑方法上一篇文章:Python元类上一篇文章:Python装饰器:python真正入门的鉴定标准1、运行过程中给对象绑定、删除属性实例:
Python是动态语言:动态编辑属性、动态编辑方法

上一篇文章:
Python元类

上一篇文章:
Python装饰器:python真正入门的鉴定标准

1、运行过程中给对象绑定、删除属性

实例:

class Person():
def __init__(self,name):
self.name=name
#定义一个对象
mark=Person("mark")#终于修炼成人了,好开森
print("报出我的大名",mark.name)
#直接新定义属性:age
mark.age=18
print("我的实际年龄:",mark.age)#哎😔,写大了,我还是个宝宝👶
#动态删除属性:
del mark.age
#这种方法删除也可以
#delattr(Person,"age")
#下面一句会报错
#print("我的实际年龄:",mark.age)#哎😔,写大了,我还是个宝宝👶

结果:

报出我的大名 mark
我的实际年龄: 18

2、运行过程动态绑定方法、删除方法

import types
class Person():
def __init__(self,name):
self.name=name
def study(self):
print("学习使我快乐")
#定义一个方法
def run(self,speed):
print("我竟然会跑🏃,速度:",speed)
#定义一个类方法
@classmethod
def classmethod_fun(cls):
print("我是类方法")
#定义一个静态方法
@staticmethod
def static_fun():
print("我是静态方法")
#定义一个对象
mark=Person("mark")
mark.study()
#动态生命函数
mark.run=types.MethodType(run,mark)
#跑起来🏃
mark.run(100)
#绑定类方法
Person.classmethod_fun=classmethod_fun
#调用类方法
Person.classmethod_fun()
mark.classmethod_fun()
#绑定静态方法
Person.static_fun=static_fun
#调用静态放
Person.static_fun()
#删除方法
del Person.classmethod_fun
#下面一句会异常
#mark.classmethod_fun()
#这种方法删除也可以
delattr(Person,"static_fun")
#下面一句会异常
#Person.static_fun()

运行结果:

学习使我快乐
我竟然会跑🏃,速度: 100
我是类方法
我是类方法
我是静态方法

3、__slots__限制实例动态添加属性

仅仅对当前类有效,对继承类无效

实例:

class Person():
__slots__ = ("name","age")
mark=Person()
mark.name="mark"
mark.age=18
#下面一句会报错
mark.object="在哪"

结果:

Traceback (most recent call last):
File "/Users/zhaolixiang/Desktop/python/test1/python是动态语言/3、slots.py", line 8, in
mark.object="在哪"
AttributeError: 'Person' object has no attribute 'object'

推荐阅读
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • Java 实现二维极点算法
    本文介绍了一种使用 Java 编程语言实现的二维极点算法。该算法用于从一组二维坐标中筛选出极点,适用于需要处理几何图形和空间数据的应用场景。文章不仅详细解释了算法的工作原理,还提供了完整的代码示例。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文详细解析了Java中hashCode()和equals()方法的实现原理及其在哈希表结构中的应用,探讨了两者之间的关系及其实现时需要注意的问题。 ... [详细]
  • 使用Python计算文件的CRC32校验值
    本文记录了一次对路由器固件分析时,如何利用Python计算文件的CRC32校验值。文中提供了完整的代码示例,并详细解释了实现过程。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本教程详细介绍了如何使用 TensorFlow 2.0 构建和训练多层感知机(MLP)网络,涵盖回归和分类任务。通过具体示例和代码实现,帮助初学者快速掌握 TensorFlow 的核心概念和操作。 ... [详细]
  • Python实现斐波那契数列的方法与优化
    本文详细介绍了如何在Python中编写斐波那契数列,并探讨了不同的实现方法及其性能优化。通过递归、迭代和公式法,读者可以了解每种方法的优缺点,并选择最适合自己的实现方式。 ... [详细]
  • 二维几何变换矩阵解析
    本文详细介绍了二维平面上的三种常见几何变换:平移、缩放和旋转。通过引入齐次坐标系,使得这些变换可以通过统一的矩阵乘法实现,从而简化了计算过程。文中不仅提供了理论推导,还附有Python代码示例,帮助读者更好地理解这些概念。 ... [详细]
  • 本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ... [详细]
  • 社交网络中的级联行为 ... [详细]
  • 使用Python实现余弦相似度计算
    余弦相似度广泛应用于文本分类、图像识别等领域,用于衡量两个向量之间的相似程度。其值域在-1到1之间,数值越接近1表示两向量越相似,完全相同为1;相反方向时为-1;正交或不相关时为0。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
author-avatar
谭小牙笑不漏齿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有