面向对象 3 属性查找与绑定方法&python中一切皆为对象

属性查找与绑定方法



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)

猜你喜欢

转载自blog.csdn.net/qq_42936973/article/details/82857911