# from math import pi # # class Circle: # def __init__(self, r): # self.r = r # # @property # def perimeter(self): # return 2*pi*self.r # # @property # def area(self): # return self.r**2*pi # # circle = Circle(4) # print(circle.perimeter) # print(circle.area) # class Person: # discount = 0.8 # def __init__(self, name): # self.__name = name # self.price = 20 # # @property # def name(self): # return self.__name # # @name.deleter # def name(self): # return self.__name # # @name.setter # def name(self, new_name): # self.__name = new_name # # person = Person('aaa') # print(person.name) # person.name = 'bbb' # del person.name # print(person.name) class Person: age = 1 def __init__(self, name): self.__name = name @property # 把方法变成属性 def name(self): return self.__name @classmethod # 把方法变成类方法,这个方法就直接可以被类调用,不需要依托任何对象 def get_age(cls, age): cls.age = age # 如果一个函数 既和对象没有关系 也和类没有关系 那么就用staticmethod将这个函数变成静态方法 @staticmethod def get_usr_pwd(): usr = input('input user:') pwd = input('input password') print('user is %s, password is %s' %(usr, pwd)) person = Person('aaa') print(person.name) Person.get_age(54) Person.get_usr_pwd()