python:__new__方法 的用处

__new__用于创建新的对象:

 

class Person(object):

# 用于创建对象

def __new__(cls, *args, **kwargs):

print(‘__new__’)

# 创建对象,然后返回

return object.__new__(cls)

__init__用于初始化对象

# 用于初始化对象

def __init__(self):

print(‘__init__’)

 

设计模式

 

单例模式:无论创建多少次,得到的对象始终是同一个。

说明:针对特定场景问题的特定解决方案

 

class Person(object):

def __new__(cls, *args, **kwargs):

# 判断当前类是否拥有_instance属性

if not hasattr(cls, ‘_instance’):

print(‘创建对象’)

cls._instance = object.__new__(cls)

return cls._instance

 

p1 = Person()

p2 = Person()

 

eval

 

(执行有效的python代码字符串

c=eval(‘a+b’)

print(c)

个人理解:如果想以字符串的形式导出对象。用__repr__可以得到的字符串表达形式。

然后可以用eval打印这些可以执行的字符串。

 

__repr__

 

可以得到对象创建的字符串表示形式。

 

分类: Python编程

发表评论 X

电子邮件地址不会被公开。 必填项已用*标注

姓名不能为空
填写正确的email