首页 > 其他分享 >面向对象中@perproty的作用

面向对象中@perproty的作用

时间:2023-03-05 12:33:32浏览次数:32  
标签:name self perproty 面向对象 ._ property age 作用 setter

@property 是 Python 中的一个装饰器(decorator),用于创建 getter 和 setter 方法。其作用是将类的方法转换为相应的属性,从而使得代码更加简洁明了。

在 Python 中,我们可以通过直接访问类的属性来获取或设置属性的值。但是,如果我们需要对属性的访问或设置进行一些限制或者需要对属性值进行处理,那么就需要使用 getter 和 setter 方法。使用 @property 装饰器可以将 getter 和 setter 方法转换为属性,使得代码更加易读。

下面是一个简单的例子,演示了如何使用 @property 装饰器:

pythonCopy codeclass Person:
    def __init__(self, name, age):
        self._name = name
        self._age = age
    
    @property
    def name(self):
        return self._name
    
    @name.setter
    def name(self, value):
        self._name = value
    
    @property
    def age(self):
        return self._age
    
    @age.setter
    def age(self, value):
        if value < 0:
            raise ValueError("Age cannot be negative")
        self._age = value

# 使用
person = Person("Alice", 25)
print(person.name) # 输出 "Alice"
person.name = "Bob"
print(person.name) # 输出 "Bob"
person.age = -1 # 抛出 ValueError 异常

在上面的例子中,我们使用 @property 装饰器将 name()age() 方法转换为属性。同时,我们也定义了相应的 setter 方法,用于对属性的值进行限制和处理。

标签:name,self,perproty,面向对象,._,property,age,作用,setter
From: https://www.cnblogs.com/Maxs-message/p/17180210.html

相关文章

  • python名称空间和作用域
    函数内部的函数只能在函数内部调用,不能在函数外部调用,通过接下来的学习你将会知道为什么会出现这种情况。deff1():deff2():print('fromf2')f2()f......
  • 面向对象
    构造函数的使用构造函数和普通函数没有区别,只不过在调用的时候和new关键字连用书写构造函数,函数名首字母大写,当看到名字的时候,就知道要和new关键字连用调用的时......
  • 【Java Pro】001-Java基础:面向对象
    【JavaPro】001-Java基础:面向对象文章目录​​【JavaPro】001-Java基础:面向对象​​​​一、面向对象​​​​1、什么是对象​​​​现实生活中的对象与程序中的对象​​......
  • 5.闭包的实现原理和作用,可以列举几个开发中闭包的实际应用
    1.闭包的实现原理和作用闭包:指有权访问另一个函数作用域中的变量的函数,一般都是一个函数包含另一个函数。2.闭包的作用:访问函数内部变量、保持函数在环境中一直存在,不会......
  • java中 += 的作用
    编程语言中数据类型之间的区别,大的数据类型转换给小的会无法转换,所以在一些小的数据类型运算的时候一般会默认使用int以上的数据类型运算,当你使用byte,short,char类型运算......
  • 2.理解JavaScript的作用域和作用域链
    什么是作用域Javascript中的作用域说的是变量的可访问性和可见性。也就是说整个程序中哪些部分可以访问这个变量,或者说这个变量都在哪些地方可见。作用域的类型全局作......
  • 1.理解词法作用域和动态作用域
    作用域?什么是作用域?作用域就是指程序源代码中定义变量的区域作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。js采用词法作用域,也就是静态作用域。动......
  • box-sizing常用的属性有哪些?分别有什么作用?
    (1)标准盒模型box-sizing:content-box;作用:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。(2)IE盒模型box-sizing:border-b......
  • 变量 常量 作用域
    变量常量作用域变量定义却不初始化默认值为0(布尔类型为false)或者为NULL;类变量:有static定义的变量实例变量:定义在类且不在方法中的变量(无static),使用时需要**对......
  • HandlerMethodArgumentResolver(参数解析器)的作用+使用小案例
    前言今天在做项目时遇到了一个有关参数解析HandlerMethodArgumentResolver的使用疑惑。我想作为新手的我在此和大家一起交流并记录。接下来开始发车......正文 首先先来认......