属性查找与绑定方法
x='全局'
class LuffyStudent:
school = 'luffycity'
# stu1,'王二丫','女',18
def __init__(self,name,sex,age):
self.Name = name
self.Sex = sex
self.Age = age
#stu1.Name='王二丫'
# stu1.Sex = '女'
#stu1.Age = 18
def learn(self,x):
print('%s is learning %s'%(self.Name,x))
def eat(self):
print('%s is eating'%self.Name)
#后产生对象
stu1 = LuffyStudent('王二丫','女',18)
stu2 = LuffyStudent('李三','男',38)
stu3 = LuffyStudent('张四','男',48)
# print(stu1.__dict__)
# print(stu2.__dict__)
# print(stu3.__dict__)
#类中的数据属性,是所有对象共有的
# print(LuffyStudent.school,id(LuffyStudent.school))
#
# print(stu1.school,id(stu1.school))
# print(stu2.school,id(stu1.school))
# print(stu3.school,id(stu1.school))
#类中的函数属性:是绑定给对象的,绑定到不同的对象是不同的绑定方法,对象调用绑定方法是,会把对象本身当作第一个传入,穿个self
# print(LuffyStudent.learn)
# LuffyStudent.learn(stu1)
# LuffyStudent.learn(stu2)
# LuffyStudent.learn(stu3)
# print(stu1.learn)
# stu1.learn(1) #learn(stu1)
# print(stu2.learn)
# print(stu3.learn)
#
# stu2.learn(2)
# stu3.learn(3)
stu1.x='from stu1'
# LuffyStudent.x='from luffycity class'
print(stu1.__dict__)
print(stu1.x)
补充说明
1、站的角度不同,定义出的类截然不同的
2、现实中的类并不完全等于程序中的类,比如现实中的公司类,在程序中有时需要拆分成部门类,业务类等
3、有时为了编程需求,程序中也可能会定义现实中完全不存在的类,比如策略类,现实中不存在,但是在程序中是很常见的类
python中一切皆为对象
python中一切皆为对象,并且在python3里统一类类与类型的概念
# print(type([1,2]))
# print(list)
class LuffyStudent:
school = 'luffycity'
# stu1,'王二丫','女',18
def __init__(self,name,sex,age):
self.Name = name
self.Sex = sex
self.Age = age
#stu1.Name='王二丫'
# stu1.Sex = '女'
#stu1.Age = 18
def learn(self,x):
print('%s is learning %s'%(self.Name,x))
def eat(self):
print('%s is eating'%self.Name)
# print(LuffyStudent)
l1=[1,2,3]
l2=[]
list.append(l1,4)
print(l1)