1. 分析下面的代码: CD
class A:
def __init__(self, s):
self.s = s
def print(self):
print(s)
a = A("Welcome")
a.print()
A.程序有错误,因为类A中没有构造方法。
B.程序将打印出字符串:Welcome。
C.程序有错误,因为类A中的print方法中的语句:print(s),s变量没有定义。
D.如果将实例方法print(self)中的语句:print(s) 改成 print(self.s),程序能够正常运行.
2. 关于__new__和__init__方法的比较,下面哪些说法是正确的(ABCD )?
A.__new__
是一个静态方法,而__init__
是一个实例方法
B.__new__
方法会返回一个创建的实例,而__init_
_什么都不返回
C.只有在__new__
返回一个cls的实例时, __init__
才能被调用
D.当创建一个新实例时调用__new__
,初始化一个实例时用__init__