网站制作学习网Python→正文:python设置读取对象属性
字体:

python设置读取对象属性

Python 2024/6/27 8:04:49  点击:不统计

http://%77w%77%2E%66%6F%72%61%73%70%2E%63n网站制作学习
 """python设置读取对象属性

 
    python 设置类的属性,读取类的属性,可以有多种形式,下面逐一使用各种读写类对象属性
"""
# 第一种,直接使用__inti__ 方法初始化
from typing import Any
 
 
class A:
    def __init__(self, site_name):
        self.site_name = site_name
        
a = A("forasp.cn") # 初始化
print(a.site_name)
a.site_name = "www.forasp.cn" # 更改
print(a.site_name) 
a.site_url = "https://www.forasp.cn" # 添加
print(a.site_url)
"""结果
forasp.cn
www.forasp.cn
https://www.forasp.cn
"""
 
# 第二种通过 属性方法
print("第二种通过 属性方法")
class B:
    def __setattr__(self, name: str, value: Any) -> None:
        super().__setattr__(name, value)
        pass
 
b = B() # 初始化
b.__setattr__("site_name", "forasp.cn") # 添加
print(b.site_name) 
b.site_name = "www.forasp.cn" # 更改
print(b.site_name) 
b.site_url = "https://www.forasp.cn" # 添加
print(b.site_url)
"""结果
forasp.cn
www.forasp.cn
https://www.forasp.cn
"""
 
# 第三种通过 属性方法
print("第三种通过 属性方法")
class C:
    def __init__(self,name) -> None:
        self._name = name
        pass
    
    def _get_name(self):
        print("get")
        return self._name
    
    def _set_name(self,name):
        print("set")
        self._name = name
        
    name = property(_get_name, _set_name)
    
# 注意这里的参数属性为self._name 而不是self.name
c = C("forasp.cn") # 初始化
c.name = "www.forsasp.cn" # 添加
print(c.name)
"""结果:
set
get
www.forsasp.cn
"""
 
# 第四种通过 通过@property 装饰器
print("第四种通过 通过@property 装饰器")
class D:
    @property
    def name(self):
        print("get")
        return self._name
    
    @name.setter
    def name(self, name_value):
        print("set")
        self._name = name_value
# 注意这里的参数属性为self._name 而不是self.name
d = D() # 初始化
d.name = "forasp.cn" # 添加
print(d.name)
"""结果:
set
get
forasp.cn
"""

以上就是python 设置属性,读取属性的方法

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

·上一篇:python抛出异常 >>    ·下一篇:python 中的默认值 >>
推荐文章
最新文章