init方法不是已经对参数进行了初始化,为什么还需要set方法再一次赋值
作者的意思是set 可以对实列化进行单独修改,比如dog.set('nomi'), 然后再调用的时候dog.get_name(),所输出的结果就是nomi. 如果不用增加set实例方法的话,修改变量需要重新定义实例化
get和set都没有什么意义,只是一个单纯的函数名字,我把get或者set改成A11也可以执行
class Animal(object):
count=0
def __init__(self,name,age,localtion):
self.__name=name
self.__age=age
self.__localtion=localtion
Animal.count=Animal.count+1
def A11_name(self):
return self.__name
def A11_age(self):
return self.__age
def A11_localtion(self):
return self.__localtion
dog=Animal('xiaohei','3','beijing')
cat=Animal('dabai','99','tianjin')
print(dog.A11_name())
print(dog.A11_age())
print(dog.A11_localtion())
print(cat.A11_name())
print(cat.A11_age())
print(dog.A11_localtion())
print(dog==cat)
print(Animal.count)
不需要set方法,直接get也是可以的
class Animal(object):
def __init__(self,name,age,localtion):
self.__name = name
self.__age = age
self.__localtion = localtion
def get_name(self):
return self.__name
def get_age(self):
return self.__age
def get_localtion(self):
return self.__localtion
dog = Animal('JM',3,'SZ')
cat = Animal('BS',2,'SH')
wolf = Animal('JWH',900,'OF')
print('name:{},age:{},localtion:{}'.format(dog.get_name(),dog.get_age(),dog.get_localtion()))