#conding: utf-8
#定义类的方法
'''
函数和方法
函数:直接调用函数名来调用
方法:必须和对象结合在一起使用(方法是类的一部分,由别的程序来调用)
常用的方法定义
class Example(object):
def add(self):
pass
def _minus(self):
pass
def __multiply(self):
pass
'''
class Programer(object): #定义了一个Programer类
hobby = "Play Com" #在类里面直接定义一个属性hobby
def __init__(self, name, age, weight): #在构造函数里面定义了三个属性
self.name = name
self._age = age
self.__weight = weight
@classmethod #方法的装饰器;调用的时候直接用类名,而不是某个对象
def get_hobby(cls):
return cls.hobby
@property #方法的装饰器;像访问属性一样调用方法
def get_weight(self):
return self.__weight
def self_introduction(self):
print('My name is %s \nI am %s years old\n' % (self.name, self._age))
if __name__ == '__main__':
programer = Programer('jodie', 25, 85) #将Programer这个对象实例化
print(dir(programer)) #将programer的属性打印一下
print(Programer.get_hobby()) #用类名来调用方法
print(programer.get_weight) #不用后面的小括号
programer.self_introduction() #对象.方法
运行后的结果打印:
['_Programer__weight', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__','__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__',
'__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__','__repr__', '__setattr__', '__sizeof__',
'__str__','__subclasshook__', '__weakref__', '_age', 'get_weight', 'hobby', 'name']
Play Computer
85
My name is jodie
I am 25 years old
Process finished with exit code 0