# 在类里可以定义三种方法
# 1,实例方法
# 方法的第一个参数是self
# 2,类方法
# 方法的第一个参数是cls(表示当前类),需要帽子@classmethod
# 3,静态方法
# 方法没有参数,带有帽子@staticmethod
class Person(object):
country = '中国'
__skin_color = '黄种人'
def __init__(self, name, age):
self.name = name
self.__age = age
#定义实例方法,可以对私有的实例属性进行修改和获取数据
def set_age(self, new_age): #实例方法可以代替类方法,运用self.__class__
if 0 < age < 150:
self.__age = new_age
else:
print('请输入合法年龄!')
def get_age(self):
return self.__age
#定义类方法,可以对私有的类属性进行修改和访问,一般和当前类的相关操作都使用
@classmethod
def set__skin_color(cls, new_color):
print(cls)
cls.__skin_color = new_color
@classmethod
def get_skin_color(cls):
return cls.__skin_color
#定义静态方法,当方法内不需要使用当前类(cls)和当前对象(self)
@staticmethod
def sum(num1, num2):
return num1 + num2
# 类方法也可以这样改写为实例方法,把上面的类方法修改成这样
def set__skin_color(self, new_color):
self.__class__.__skin_color = new_color
def get_skin_color(self):
return self.__class__.__skin_color