面向对象的内置成员以及方法的分类

内置成员:

#内置成员
#__dict__获取类/对象的所属成员组成的集合
# class Human:
# eye=2
# def think(self):
# print('人类会思考')
#
# ren=Human()
# print(Human.__dict__)


#__doc__获取类中的文档
# class Human:
# '''
# 这个类名是Human
# 成员属性是eye
# 成员方法是think
# '''
# eye=2
# def think(self):
# print('人类会思考')
#
# ren=Human()
# print(Human.__doc__)
# 这个类名是Human
# 成员属性是eye
# 成员方法是think

#__name__:获取类名称的字符串
# class Human:
# eye=2
# def think(self):
# print('人类会思考')
#
# ren=Human()
# print(Human.__name__,type(Human.__name__))

#主要会这么用(后面讲):
# if __name__ == '__main__':
# pass

# __module:获取当前类所在的文件的名称,如果当前文件显示main
# class Human:
# eye=2
# def think(self):
# print('人类会思考')
#
# ren=Human()
# print(Human.__module__)

# __bases:获取当前类的父亲列表
# class Human:
# pass
# class Man(Human):
# pass
# class Woman(Human):
# pass
# class Child(Woman,Man):
# pass
# print(Child.__bases__)

方法分类:
1.对象方法:该方法中会直接传入当前对象
调用方式:对象。成员方法()
特征:会将当前对象传入方法中

2.类方法:在方法中会直接传入当前类
@classmethod
 类。成员方法()
特征:会将当前类传入方法中
3.绑定类方法:在方法中不会传入类或者对象的方法
 调用方式:类。成员方法()
特征:不会传入类/对象,只能通过类来调用
4.静态方法:与类和对象无关,但是存在于类结构中的方法
 @staticmethod:返回函数的静态方法
调用方式:类。成员方法()/对象。成员方法()
class Human:
eye='2'
#对象方法
def think(self):
print('人类会思考')
#类方法
@classmethod
def eat(cls):
print('吃的真香')
#绑定类方法(只能用类来调用)
def sleep():
print('睡得真舒服')
#静态方法
@staticmethod
def play():
print('玩的真愉快')
ren=Human()
#对象调用方法
ren.think()
#类调用方法
Human.eat()
#绑定类调用(只能用类来调用)
Human.sleep()
#静态方法(对象和类都可以调用)
Human.play()
ren.play()