首页 > 编程语言 >python: objct property

python: objct property

时间:2023-07-02 10:45:07浏览次数:45  
标签:.__ return name python age Clerker objct property self

 

"""
clerker.py
类
edit:geovindu,Geovin Du
date:20230672
IDE:PyCharm 2023.1.2
clerker.__dict__ 窥探私有属性
私用属性
clerker._Clerker.__age=-1
clerker.__age=-1
"""
import sys
import os

class Clerker(object):
    """
    类的封装
    """
    salary=30  #定义类的公有属性
    _salary2=20 #定义类的保护属性
    __salary3=50 #定义类的私有属性

    def __init__(self,name:str,age:int):
        """

        :param name:
        :param age:
        """
        self._name=name #公有属性
        self.__age=age #私用属性,需要通过(函数)setter,getter 设置和访问


    @property  # @property装饰getter方法  get ,set 名字相符
    def Age(self):
        """

        :return:
        """
        return self.__age

    @Age.setter
    def Age(self,age):  #@方法名.setter 设置
        """

        :param age:
        :return:
        """
        if age>0:
            self.__age=age

    def __getage(self):
        """

        :return:
        """
        print(f"我是{self._name},今年{self.__age}岁")
        return self.__age


    def setName(self,name):
        """

        :param name:
        :return:
        """
        self._name=name

    def getName(self):
        """

        :return:
        """
        return self._name

    def setAge(self,age):
        """

        :param age:
        :return:
        """
        if(age>0):
            self.__age=age

    def getAge(self):
        """

        :return:
        """
        return self.__age

  

调用:

#私有属性也可以处理
cl=Clerker.Clerker("geovindu",25)
print(cl.getAge())
print(cl.__dict__)  #查看属性
print(Clerker.__dict__) #查看方法
cl._Clerker__age=20
print(cl.Age)
print(cl._Clerker__getage())
print(Clerker.Clerker.salary)
print(Clerker.Clerker._salary2)

  

标签:.__,return,name,python,age,Clerker,objct,property,self
From: https://www.cnblogs.com/geovindu/p/17520468.html

相关文章

  • LeetCode-Python-#27 移除元素
    题目描述给定一个数列nums和数值val,消除数列nums中与数值 val相同的元素,最终返回新数列的长度;要求:不能开辟空间分配新的数列,必须改变原输入nums数列;并对修改后的nums数列的元素顺序没有要求,可以被修改。Examplesnums=[3,2,2,3; val=3 则返回长度为2;nums=[0,1,2,2,3,0,4,2]......
  • ImportError:无法从“django.utils.encoding”导入名称“force text”[Python错误已解
    在软件开发过程中遇到错误是很常见的,在使用Python和Django时,这样的错误之一就是ImportError:cannotimportname'forcetext'from'django.utils.encoding'.forcetext此特定错误表明从模块导入方法时出现问题django.utils.encoding。缺少的方法用于将输入数据转换为一致......
  • python: 举例说明什么是装饰器
    python:举例说明什么是装饰器━━━━━━━━━━━━━━━━━━━━━━━━━装饰器是Python中的一种高级特性,它允许我们在不修改原函数代码的情况下,对函数进行功能的扩展和修改。装饰器实际上是一个函数,它可以接受一个函数作为输入,并返回一个新的函数。下面是一个简单的......
  • Python基础语法--课程笔记
    Smiling&Weeping----很难再爱上下一个春天只守着我的枯木 一等再等保留标识符:1.__*__代表系统定义函数的名字:__new__()  #创建新对象的函数__init__() #创建函数2.“_”在交互式执行中使用,代表计算结果,如......
  • Python 逻辑表达式的妙用
    今天偶然看到有这样一段代码,感到很惊讶:super().__init__(package_nameor(robot_name+"_moveit_config"))语义非常明确且简洁,但是逻辑表达式可以这样用吗?我搜索了一下,原来or和and表达式的返回值并不一定是bool值。>>>1and22>>>1and00>>>0and10>>>No......
  • Python之itertools模块
    python的itertools模块介绍itertools模块是Python标准库中的一个模块,提供了多个用于迭代器和循环操作的函数。1.count方法:生成一个从指定起始数开始的整数序列(无穷迭代)函数功能:count函数生成一个无穷迭代器,用于生成一个整数序列。语法:itertools.count(start=0,step=1)参......
  • 免费搭建一个有脾气的聊天机器人,1行Python代码就够了!
    大家好,这里是程序员晚枫。之前在小破站:Python自动化办公社区给大家免费分享了用Python制作一个wx机器人,1行代码人人可用,很多人还想要免费的智能聊天功能。今天终于开发出来了,让我们一起看一下,如何用1行代码,实现智能聊天。我测试了很多次,回复一直很稳定,赶紧去试一下,这个机器人的......
  • 【Python基础】index函数-返回查找对象的首个匹配的索引位置
    描述从列表中找出某个值第一个匹配项的索引位置返回的是查找对象的索引位置,如果没有,就会抛出异常语法List.index(a,start,end)参数解释a要查找的对象(必填)start要查找的范围的开始位置索引(闭区间)(非必填)end要查找的范围的结束位置索引(开区间)(有end就必须有start,有start时可以没end)举......
  • Python潮流周刊#9:如何在本地部署开源大语言模型?
    你好,我是猫哥。这里每周分享优质的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)首发于我的博客:https://pythoncat.top/posts/2023-07-01-weekly周刊的投稿通道已开放,请在Github项目中提交issue:https://github.c......
  • python开发入门
    python开发很简单,但环境问题很讨厌。需要搞定各种包scikit-learn,tensorflow,pytorch,pandas,numpy如果遇到超时错误,可通过指定镜像站的方式来搞定pip3installtensorflow-ihttps://pypi.tuna.tsinghua.edu.cn/simple还可以用python包管理软件,condapython开发还需......