# 输出当前文件的绝对路径
print(__file__)
断言assert
assert type(1) is int
assert 1+1 == 2
assert 1+1 == 2 # 会报AssertionError
def my_interface(name,age,score):
assert type(name) is str
assert type(age) is int
assert type(score) is float
my_interface("alex",22,89.2)
class Person(object):
def init(self,name):
self.name = name
print("–init …")
def new(cls, *args, **kwargs):
# 负责执行__init__
“”"
cls : 代表Person这个类本身
:param args:
:param kwargs:
:return:
“”"
print("–in new: ",cls,*args,**kwargs)
return object.new(cls) # 执行__init__
p = Person(“Alex”)
print(p.name)
print(Person)
单例模式实例
class Printer(object):
__instance = None
__task = []
def init(self,task):
self.__task.append(task)
print(“工作。。”)
def new(cls, *args, **kwargs):
if cls.__instance == None: # 代表之前没有实例过
obj = object.new(cls)
cls.instance = obj
return cls.__instance # 下次实例化就返回第一次的实例化的对象
def job(self):
return self.__task
job = Printer(“job1 word”)
job2 = Printer(“job2 png”)
job3 = Printer(“job3 excel”)
print(id(job),id(job2),id(job3)) # 会发现这3个实例的内存id一样
print(job3.jobs())