1:初始化Person时出现的问题解决方法:
class Person: # 类对象
def _init_(self,x,y):
self.x = x
self.y = y
print("x=" + str(x))
print("y=" + str(y))
# 实例对象
p = Person(1, 2)
# p1 = Person (3,4)
此时运行代码出现错误提示:TypeError: Person() takes no arguments
解决方法:将def _init_(self,x,y): 改为:def __init__(self,x,y): #init前后的下划线是两个;
2:报错
raceback (most recent call last):
File "/Users/class_and_instance.py", line 16, in <module>
print(Person.add())
TypeError: add() missing 1 required positional argument: 'self'
class Person: # 类对象 定义一个类
#x = 5
# y = 6
def __init__(self,x,y): #声明一个实例方法
self.x = x
self.y = y
print("x=" + str(x))
print("y=" + str(y))
def add(self): #声明一个add方法
return self.x + self.y
# 实例对象 构造出不同的人;
p = Person(1, 2)
print(Person.add()) #TypeError: add() missing 1 required positional argument: 'self' 备注:Person缺少一个参数self,self是一个类;
3:报错:
File "/Users/class_and_instance.py", line 16, in <module>
print(Person.add(Person))
File "/Users/class_and_instance.py", line 10, in add
return self.x + self.y
AttributeError: type object 'Person' has no attribute 'x'
class Person: # 类对象 定义一个类
#x = 5
# y = 6
def __init__(self,x,y): #声明一个实例方法
self.x = x
self.y = y
print("x=" + str(x))
print("y=" + str(y))
def add(self): #声明一个add方法
return self.x + self.y
# 实例对象 构造出不同的人;
p = Person(1, 2)
print(Person.add(Person)) #AttributeError: type object 'Person' has no attribute 'x';Person缺少参数X;传入一个实实在在的对象代表self;传入的参数是一个实例对象;Person在构造的时候需要传入两个参数
#修改为:print(Person.add(Person(1,2))) 或者改为:print(Person.add(p))