python类对象动态添加属性和方法
class Person(): #创建一个类 def __init__(self,name): #定义初始化信息。 self.name = name li = Person('李') #实例化Person('李'),给变量li li.age = 20 #再程序没有停止下,将实例属性age传入。动态语言的特点。 Person.age = None #这里使用类名来创建一个属性age给类,默认值是None。Python支持的动态属性添加。 def eat(self): #定义一个方法,不过这个方法再类之外。 print('%s正在吃东西。。'%self.name) import types #动态添加方法需要使用tpyes模块。 li.eat = types.MethodType(eat,li) #使用types.MethodType,将函数名和实例对象传入,进行方法绑定。并且将结果返回给li.eat变量。实则是使用一个和li.eat方法一样的变量名用来调用。 li.eat() #调用外部方法eat()方法。 @staticmethod #定义静态方法。 def test(): #定义静态方法,静态方法可以不用self参数。 print('这是一个静态方法。') Person.test = test #使用类名.方法名 = test的形式来方便记忆和使用,Person.test其实只是一个变量名,没有特殊的含义。 Person.test() #调用test方法。 @classmethod #类方法 def test(cls): print('这是一个类方法。') Person.test = test #定义一个类属性等于方法名。 Person.test() #调用方法。 class test(object): #定义一个类。 __slots__ = ('name','age')
#使用slots来将属性固定,不能进行动态添加修改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗