python动态添加属性

部署运行你感兴趣的模型镜像
class A:
    def __init__(self, info ={}):
        self.info = info

    def __getattr__(self, item):
        return self.info[item]


a =A()
a.age = 123
print(a.age)
a.name = 123
print(a.name)
a.xis = 123
print(a.xis)
print(a.__dict__)

 

转载于:https://www.cnblogs.com/7134g/p/11536014.html

您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

Python中,添加属性的方法主要有以下几种: ### 1. 类定义时添加属性 在定义类时,可以直接在类中定义属性。这些属性会被类的所有实例共享,或者作为实例属性在`__init__`方法中初始化。 ```python class Person: # 类属性 species = "Homo sapiens" def __init__(self, name, age): # 实例属性 self.name = name self.age = age # 创建实例 p = Person("Alice", 30) print(p.name) # 输出: Alice print(p.species) # 输出: Homo sapiens ``` ### 2. 动态添加实例属性 Python允许在对象创建后动态地为实例添加属性,这体现了Python的灵活性,但也可能降低代码的可读性和可维护性,使用时需谨慎[^1]。 ```python class Dog: def __init__(self, name): self.name = name # 创建实例 dog = Dog("Buddy") # 动态添加属性 dog.breed = "Golden Retriever" print(dog.breed) # 输出: Golden Retriever ``` ### 3. 动态添加属性 同样,也可以在类定义后动态地为类添加属性,这样类的所有实例都可以访问这个新属性。 ```python class Cat: pass # 动态添加属性 Cat.color = "Gray" # 创建实例 cat = Cat() print(cat.color) # 输出: Gray ``` ### 4. 动态添加方法作为属性 可以使用`types.MethodType`为实例动态添加方法,不过这种方法添加的方法只在该实例存在,其他实例调用会报错[^3]。 ```python from types import MethodType class Animal: def __init__(self, name): self.name = name def bark(self): print(f"{self.name} is barking!") # 创建实例 dog = Animal("Buddy") # 动态添加方法 dog.bark = MethodType(bark, dog) dog.bark() # 输出: Buddy is barking! ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值