摘要:上一篇文章装饰器真正入门的鉴定标准下一篇文章垃圾回收详解私有化变量定义规则变量形式解读公有变量单前置下划线,私有化属性或方法,禁止导入,类对象和子类进可以访问。双前置下划线,避免与子类中的属性命名冲突,无法再在外部直接访问。
1、私有化</>复制代码
上一篇文章:Python装饰器:python真正入门的鉴定标准
下一篇文章:Python垃圾回收详解
变量定义规则
变量形式 | 解读 |
---|---|
xx | 公有变量xx |
_xx | 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类进可以访问。 |
__xx | 双前置下划线,避免与子类中的属性命名冲突,无法再在外部直接访问。 |
__xx__ | 双前后下划线,python自定义使用的的属性或者方法名称,例如__init__,不要自定义这种名称的变量 |
x_ | 单后置下划线,避免与Python关键词冲突 |
实例:
</>复制代码
class Man():
def __init__(self):
self.__age=18
def getAge(self):
return self.__age
def setAge(self,value):
#isinstance用来判断一个对象是不是指定类型
#下面语句就是用来判断value是不是int类型
if isinstance(value,int):
self.__age=value
else:
print("输入的年龄不是整数")
if __name__=="__main__":
mark=Man()
mark.setAge("xxx")
print(mark.getAge())
mark.setAge(20)
print(mark.getAge())
#下面一句会报错
#print(mark.age)
结果:
</>复制代码
输入的年龄不是整数
18
20
实例:
</>复制代码
class Man():
def __init__(self):
self.__age = 18
def getAge(self):
return self.__age
def setAge(self, value):
# isinstance用来判断一个对象是不是指定类型
# 下面语句就是用来判断value是不是int类型
if isinstance(value, int):
self.__age = value
else:
print("输入的年龄不是整数")
age=property(getAge,setAge)
if __name__ == "__main__":
mark = Man()
mark.age="xxx"
print(mark.age)
mark.age=20
print(mark.age)
结果:
</>复制代码
输入的年龄不是整数
18
20
实例:
</>复制代码
class Man():
def __init__(self):
self.__age = 18
@property
def age(self):
return self.__age
@age.setter
def age(self,value):
# isinstance用来判断一个对象是不是指定类型
# 下面语句就是用来判断value是不是int类型
if isinstance(value, int):
self.__age = value
else:
print("输入的年龄不是整数")
if __name__ == "__main__":
mark = Man()
mark.age="xxx"
print(mark.age)
mark.age=20
print(mark.age)
结果:
</>复制代码
输入的年龄不是整数
18
20
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42260.html
摘要:一利用动态属性处理数据源属性在中,数据的属性和处理数据的方法统称属性。处理无效属性名在中,由于关键字被保留,名称为关键字的属性是无效的。内置函数列出对象的大多数属性。点号和内置函数会触发这个方法。 导语:本文章记录了本人在学习Python基础之元编程篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流。 本文重点: 1、了解如何利用动态属性处理数据;2、掌握Pyth...
摘要:在项目中,为满足以上要求,我们将大量的参数配置在或文件中,通过注解,我们可以方便的获取这些参数值使用配置模块假设我们正在搭建一个发送邮件的模块。这使得在不影响其他模块的情况下重构一个模块中的属性变得容易。 在编写项目代码时,我们要求更灵活的配置,更好的模块化整合。在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或...
摘要:在项目中,为满足以上要求,我们将大量的参数配置在或文件中,通过注解,我们可以方便的获取这些参数值使用配置模块假设我们正在搭建一个发送邮件的模块。这使得在不影响其他模块的情况下重构一个模块中的属性变得容易。 在编写项目代码时,我们要求更灵活的配置,更好的模块化整合。在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或...
摘要:此时,链家起到的作用就是代理的作用。验证代理构造函数第二个参数中的方法,可以很方便的验证向一个对象的传值。 1 什么是代理模式 showImg(https://segmentfault.com/img/remote/1460000015800706?w=1262&h=464); 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理...
摘要:也有类似的概念,它是根据传递的数据类型推断的。这个特性的名称被称为私有字段,虽然这不会使所有对象受益,但会使类实例的对象受益。警告中有一个功能会破坏代理的隐私。 showImg(https://segmentfault.com/img/bVbpL6y?w=800&h=456); Symbols 是 ES6 引入了一个新的数据类型 ,它为 JS 带来了一些好处,尤其是对象属性时。 但是,...
阅读 1999·2021-09-22 15:55
阅读 3598·2021-09-07 10:26
阅读 714·2019-08-30 15:54
阅读 759·2019-08-29 16:34
阅读 915·2019-08-26 14:04
阅读 3354·2019-08-26 11:47
阅读 2195·2019-08-26 11:33
阅读 2355·2019-08-23 15:17