美文网首页
2018-08-01 python学习面向对象(getting与

2018-08-01 python学习面向对象(getting与

作者: 随雪而世 | 来源:发表于2018-08-01 20:44 被阅读0次

属性假的私有化:声明对象属性的时候,在属性名前面加一个'_',来告诉别人这个属性不可以直接使用。 要通过getter和setter来获取属性的和修改属性的值

1.getter: 获取属性的值

@property
def 属性名(去掉下划线)(self):
    return 返回值
如果在获取对象的某个属性前需要再干点儿别的事情,就给属性添加getter
  1. setter: 给属性赋值
    一个属性必须要有getter,才能添加setter。
@属性名(去掉下滑线).setter
def 属性名去掉下划线(self, 变量名):
    给带下划线的属性赋值
如果在给对象的某个属性赋值前需要再干点儿别的事情,就给属性添加setter
class Student:
    """学生类"""
    def __init__(self):
        # 声明属性的时候前面加一个'_'是为了告诉别人这个属性不能直接使用
        self._name = ''
        self._score = 0
        self._age = 0

    #  给属性_name添加getter
    @property
    def name(self):
        return self._name

    #  给属性_name添加setter
    @name.setter
    def name(self, value):
        self._name = value

    @property
    def age(self):
        return str(self._age)+'岁'

    @age.setter
    def age(self, age):
        if age >= 150 or age < 0:
            print('赋值有误,age要求是0-150的值')
            # raise 抛出异常: raise 错误类型
            # raise ValueError
            self._age = None
            return
        self._age = age


if __name__ == '__main__':
    stu1 = Student()
    # 不添加getter和setter
    # stu1._name = '张三'
    # print(stu1._name)

    # 添加getter和setter
    stu1.name = '李四'     
    #去掉了getting与setting后,发现能正常运行,其实是重新添加了一个新属性name
    
    print(stu1.name)

    stu1.age = 20
    print(stu1.age)

相关文章

  • 2018-08-01 python学习面向对象(getting与

    属性假的私有化:声明对象属性的时候,在属性名前面加一个'_',来告诉别人这个属性不可以直接使用。 要通过gette...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • Python精简入门学习(十四)

    Python精简入门学习之面向对象(oop) -面向对象 -类和对象

  • python学习笔记目录

    Python学习笔记目录(倒序) Python学习-异常 Python学习-面向对象 Python学习-文件系统 ...

  • Python GUI与面向对象

    Python GUI与面向对象 Python面向对象 对象是数据与其能实施的操作的封装结构 类是对于实例对象的抽象...

  • 面向对象编程思想及其特点

    面向对象的编程思想的发展历程 我理解的面向过程与面向对象 自从学习python以来,以前所接触的代码是根据实际的案...

  • Python学习-面向对象

    查看所有Python相关学习笔记 面向对象 面向对象知识点汇总: 面向对象静态属性实例属性(self)静态方法(@...

  • Python 面向对象编程

    Python 面向对象编程(一) Python 面向对象编程(一) 虽然Python是解释性语言,但是它是面向对象...

  • 22.Python编程:封装、继承、多态

    前面学习了面向过程和面向对象的概念,又学习了Python中类和对象的相关知识,其中面向对象最大的特征是:封装、继承...

  • python基础-02

    Python 面向对象 python是一门面向对象的语言 Python内置类属性 python对象销毁(垃圾回收)...

网友评论

      本文标题:2018-08-01 python学习面向对象(getting与

      本文链接:https://www.haomeiwen.com/subject/qlvrvftx.html