面向对象:property、setter、deleter

property:是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值

    一个静态属性property本质就是实现了get,set,delete三种方法

例:在不改变对象调用属性名的方式(obj.name)下,实现了被封装属性在类外部的查看、修改、删除

class Person:
    def __init__(self,name,money):
        self.__name = name
        self.__money = money
    @property #查看
    def name(self):
        return self.__name
    @name.setter #修改
    def name(self,new_name):
        self.__name = new_name
        return self.__name
    @name.deleter #删除
    def name(self):
        del self.name
aike = Person(‘aike‘,1000)
print(aike.name)
aike.name = ‘艾克‘
print(aike.name)
# del aike.name 

原文地址:https://www.cnblogs.com/aizhinong/p/11475002.html

时间: 2024-10-10 06:13:21

面向对象:property、setter、deleter的相关文章

python面向对象之property用法补充(getter,setter,deleter)

用法一: class Foo: @property def AAA(self): print('get的时候运行我啊') @AAA.setter def AAA(self,value): print('set的时候运行我啊') @AAA.deleter def AAA(self): print('delete的时候运行我啊') #只有在属性AAA定义property后才能定义AAA.setter,AAA.deleter f1=Foo() f1.AAA f1.AAA='aaa' del f1.AA

面向对象——property装饰器

property装饰器 property装饰器的作用,其实就是将将函数属性伪装成为属性的的装饰器 class People: def __init__(self,name,weight,height): self.name = name self.weight =weight self.height=height @property def bmi(self): return self.weight/(self.height**2) msj = People('msj',82,1.84) pri

Python_016(面向对象之属性和类方法)

一.特性(property,setter,deleter) 1.属性:将一个方法伪装成一个属性,在代码级别上没有本质的提升,但是看起来更合理; class Person: def __init__(self, height, weight): self.height = height self.weight = weight def bmi(self): return format(self.weight / (self.height ** 2), '.2f' p = Person(1.72,

面向对象编程-进阶(python3入门)

一.property装饰器的使用 #property:将一个方法伪装成一个数据属性 #如果不用property装饰器的话,这个bmi值就需要用 obj.bmi() 来调取数值,这个看起来更像一个功能,而不像一个特征 #例1 # class People: # def __init__(self,name,height,weight): # self.name = name # self.height =height # self.weight = weight # # @property # d

python day8

一.作业     要点:         1.封装,对象中嵌套对象         2.pickle,load:切记,一定要先导入相关的类                 二.上节内容回顾和补充 面向对象基本知识:     1.类和对象的关系     2.三大特性:         封装         继承         多态                     多态(多种形态.多种类型) # 接受任何类型就是多态 def func(arg):     print(arg) func(1

python26 封装 多态 常用的内置函数 `__str__` `__del__` 反射 动态导入模块

今日内容: 1. 封装 2.多态 3. 常用的内置函数 `__str__ `__del__` 4.反射 5.动态导入模块 #1. 封装 ##1.1 什么是封装 ?(what) 对外部隐藏内部的属性,以及实现细节  , 给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 1.2学习封装的目的. 就是为了能够限制外界对内部数据的访问 1.3python中属性的权限分为两种 1.公开的 ?           没有任何限制 谁都能访问 2.私有的 ?          只有当前类本身能够访

@property和@x.setter和@x.deleter表示可读可写可删除

@property可以将python定义的函数"当做"属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的.1>只有@property表示只读.2>同时有@property和@x.setter表示可读可写. 3>同时有@property和@x.setter和@x.deleter表示可读可写可删除. [python] view plain copy class student(object):  #新式类 def __init__(sel

python使用@property @x.setter @x.deleter

@property可以将python定义的函数"当做"属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的. 1>只有@property表示只读. 2>同时有@property和@x.setter表示可读可写. 3>同时有@property和@x.setter和@x.deleter表示可读可写可删除. class student(object): #新式类 def __init__(self,id): self.__id=id @pro

day 封装,面向对象,@property @classmethod @staticmethod方法

一.封装 # 面向对象的三大特性 : 继承 多态 封装# 封装 : # 广义上的 # 狭义上的 :会对一种现象起一个专门属于它的名字 # 把一堆东西装在一个容器里 # 函数和属性装到了一个非全局的命名空间 -- 封装# class A:# __N = 'aaa' # 静态变量## print(A.__N) # python# pulic 公有的# private 私有的 # java完全面向对象的语言# public 公有的# protect 保护的# private 私有的 # 定义一个私有的

Python 面向对象 组合-多态与多态性-封装-property

面向对象-组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 1 class Foo: 2 xxx = 111 3 4 class Bar: 5 yyy = 222 6 7 obj = Foo() 8 obj.attr = Bar() 9 10 print(obj.xxx) 11 >>>111 12 print(obj.attr.yyy) 13 >>>222 2.为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式