"""
在现实世界中:
对象1:王二丫
特征:
学校='luffycity'
名字=王二丫
性别=女
年龄=18
技能:
吃饭
学习
对象2:张铁蛋
特征:
学校='luffycity'
名字=李三胖
性别=男
年龄=38
技能:
吃饭
学习
对象3:
特征:张铁蛋
学校='luffycity'
名字=张铁蛋
性别=男
年龄=48
技能:
吃饭
学习
"""
class LuffyCity:
school = 'student'
def __init__(self, name, sex, age):
self.Name = name
self.Sex = sex
self.Age = age
def learn(self,x):
print('%s is learning %s' % (self.Name, x))
def eat(self):
print('%s is eatting' % self.Name)
stu1 = LuffyCity('李二丫', '女', 18)
stu2 = LuffyCity('李三胖', '男', 38)
stu3 = LuffyCity('张铁蛋', '男', 48)
对象是特指与技能的结合体
类是 一系类对象的相似的特征与相似的技能的结合体
print(LuffyCity)
print(stu1.__dict__)
类中的数据属性:对象所特有的;id相同 显示是共享的
print(LuffyCity.school, id(LuffyCity.school))
print(stu1.school, id(stu1.school))
print(stu2.school, id(stu2.school))
print(stu3.school, id(stu3.school))
类中的函数属性:是绑定给对象使用。绑定不同对象是不同的绑定方法。对象调用绑定方法,会把对象本身当做第一个传入,传给self。
print(LuffyCity.learn) # ---> <function LuffyCity.learn at 0x102df4378>
# print(LuffyCity.learn(stu1)) # ---> 李二丫 is learning
# print(LuffyCity.learn(stu2))
# print(LuffyCity.learn(stu3))
# print(stu1.learn) # ----> 绑定函数<bound method LuffyCity.learn of <__main__.LuffyCity object at 0x102dfe1d0>>
# print(stu1.learn(1)) # --->李二丫 is learning 1
# print(stu2.learn(2))
# print(stu3.learn(3))
LuffyCity.x = 'from luffycity class' #增加一个变量x
print(stu1.__dict__) # 查看stu1 并无x
print(stu1.x) # --->from luffycity class