python __new__ __init__

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Student():
    def __new__(cls, *args, **kwargs):##创建类的实例
        print('__new__')
        return object.__new__(cls)##此处返回才会调用__init__
    def __init__(self):##初始化类的实例
        print('__init__')
 
class NewInt(int):
    def __new__(cls, value):
        return int.__new__(cls,abs(value))
#单例横式
class Person():
    __isinstance=False
    def __new__(cls, *args, **kwargs):
        if cls.__isinstance:
            return cls.__isinstance
        else:
            cls.__isinstance = object.__new__(cls)
            return cls.__isinstance
    def __init__(self):
        print('3333')
if __name__=='__main__':
  stu=Student()
  nint=NewInt(-2.45)
  print(nint) ##2
  p1=Person()
  p2 = Person()
  print(p1,p2)

  

posted @   howhy  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2021-12-07 chrome dubg调试按钮说明
2017-12-07 贝叶斯定理
点击右上角即可分享
微信分享提示