1 Star 0 Fork 0

hsj-xiaokang / python

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
testClass.py 1.64 KB
一键复制 编辑 原始数据 按行查看 历史
hsj-xiaokang 提交于 2022-09-01 16:08 . 重新复习python
# encoding=utf8 如果不加这一行会报错
class Person(object):
# 属于类
__decClsPrivate = r'i am a person class private'
decClsPublic = r'i am a person class public'
def __init__(self, name, age):
# 属于对象
self.name = name
self.age = age
self.__HSJ = 'HSJ'
@property
def getPriveDec(self):
return self.__decClsPrivate
# 实现拦截所有的特性访问(属性和方法),在访问的时候打log啥的(无论有没有属性都会调用)
def __getattribute__(self, item):
print (r"====access __getattribute__(访问了特性):====" + item)
# return object.__getattribute__(self, item)
return super(Person, self).__getattribute__(item)
# 对象获取不存在的属性值,会自动调用__getattr__方法(仅仅不存在时候调用)
def __getattr__(self, attr):
return (u'未找到属性%s' % attr)
if __name__ == '__main__':
aPerson = Person(r'hsj-xiaokang', 18)
# 什么叫做动态语言,类似js
print( aPerson.nameage)
aPerson.nameage = u"xiaokang-26"
print( aPerson.nameage)
print( aPerson.name)
print( aPerson.decClsPublic)
print( aPerson.getPriveDec)
aPerson.decClsPublic = u'我是aPerson,我修改了Person类对象属性?哈哈,修改不了,被你自己覆盖了!类似于js,会自己覆盖属性哈哈'
bPerson = Person(r'lby-ayou', 18)
print( bPerson.name)
print( bPerson.decClsPublic)
print( aPerson.decClsPublic)
print( bPerson.getPriveDec)
print(bPerson._Person__decClsPrivate)
print(bPerson._Person__HSJ)
print(Person._Person__decClsPrivate)
1
https://gitee.com/hsjjsh123/python.git
git@gitee.com:hsjjsh123/python.git
hsjjsh123
python
python
master

搜索帮助