Python中__new__方法应用

class A(object):
def __new__(cls, age):  # cls保存当前内对象的引用地址
"""应用:控制对象生成"""
# 对父类object中__new__方法进行重写扩展
# 如果年龄满18岁,无法创建对象,初始化方法无法运行
if age >= 18:
pass
else:
return super().__new__(cls)

# 调用父类中的__new__方法:1给对象分配内存空间2返回对象内存空间的引用地址3将对象的引用地址传递给__init__方法中的self参数

def __init__(self, age):
self.age = age
print("年龄为%s初始化方法运行" % self.age)


# 创建实例对象时自动调用__new__、__init__方法
# __new__方法无需定义,默认继承object类

a = A(77)  # 创建对象将77传给__new__方法中的age
print(a)  # 打印对象结果为None,获取不到a对象的引用地址
b = A(17)
print(b)  # 打印对象结果为:
# 年龄为17初始化方法运行
#  <__main__.A object at 0x00000201E1BBD320>
#  获取到a对象的引用地址
#python##GE#
全部评论
https://gitee.com/y_project/RuoYi-Vue
点赞 回复 分享
发布于 2022-04-12 20:06

相关推荐

27双非本,最近面试被挂麻了面试官说简历内容太简单了,技术栈要单独一行,各位佬有啥建议吗
LZStarV:项目太简单了,你像用什么开发的技术栈没必要写一句话,按点写就好了;有特色的比如说WebSocket、视频流这种狠狠吹,那就好看多了
点赞 评论 收藏
分享
09-01 09:00
已编辑
四川旅游学院 运营
牛客55195891...:主要是专业不好,别的没毛病
牛客解忧铺
点赞 评论 收藏
分享
10-09 16:12
门头沟学院 Java
帅宇殿下:佬,简历写的什么
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务