上面的错误提示是说构造器没有带参数!
这里解释为什么要带init()函数?
代码中 __init__(self,a,b) 是一个构造函数
str = art(1,2)是实例化这个类,也就是创建一个对象,这个时候需要构造器去实例化。
然后class 类默认的构造器是不带参数,也就是说实例化的时候如果直接art()不带参数
就不需要额外写一个构造函数,因为默认就是不带参数的。
如果需要带参数的话就要重载构造函数,就是说必须要写一个构造函数带参数的。
所以用art(a,b)有2个参数就必须有对应的构造函数 init(a,b)
还有其他不带参数的举例1:
class art:
def sum(self):
print 'hello world'
some = art()
some.sum()
运行结果: hello world
举例2:
class own:
def area(self):
print self.length * self.width
r = own()
r.length, r.width = 10,2
r.area()
运行结果: 20
还有一个例子3:
class examp:
def sum(self,a,b):
self.a = a
self.b = b
c = a + b
print c
m = examp()
m.sum(1,3)
结果: 4
例4:
class op:
def __init__(self,p):
self.p = p
def a(self,p):
self.p += 5
print self.p #注意结果1)的不同
print p #注意结果2)的不同
var = op(3)
var.a(3)
结果:8 # 结果1)
3 #结果2)
例5:
class op:
def __init__(self,p):
self.p = p
def a(self):
self.p += 5
def b(self):
self.a() #在函数b中调用函数a
print self.p
var = op(2)
var.b()
结果: 7
这个理解没有最上面的容易懂,此处只提供一种可行的方法。
什么是类的实例化?
变量名 = 类名称(初始化参数)
简单来说,把类赋值一下给一个变量
实例化图解: