2.类&对象

类与对象

对象是特征与技能的结合体
类则是一系列对象相似的 特征与技能的结合体。
现实生活中:
肯定是先有对象,再有类
程序设计中:
务必保证先定义类,后产生对象

定义类

现实生活中现有对象,再产生类,例如一个班级的学生:
对象1:张三
特征:
民族=汉族
姓名=张三
性别=男
年龄=18
技能:
学习
吃饭
睡觉

对象2:李四
特征:
民族=汉族
姓名=李四
性别=男
年龄=19
技能:
学习
吃饭
睡觉

对象3:王二丫
特征:
民族=汉族
姓名=王二丫
性别=女
年龄=20
技能:
学习
吃饭
睡觉

现实中的老男孩学生类
相似的特征:
名族=汉族
相似的技能:
学习
吃饭
睡觉

而在程序中需要先定义类,再去考虑对象独特的特征:

#先定义类
class student:
    mingzu='汉族'

    def learn(self):
        print('is learning')

    def eat(self):
        print('is eating')

    def sleep(self):
        print('is sleeping')

#再产生对象
stu1=student()
stu2=student()
stu3=student()

print(stu1)
print(stu2)
print(stu3)

对于类,可以通过.__dict__来查看类的名称空间

print(student.__dict__)

#{'__module__': '__main__', 
'mingzu': '汉族',
 'learn': <function student.learn at 0x000002AEA8C376A8>, 
 'eat': <function student.eat at 0x000002AEA8C37730>, 
 'sleep': <function student.sleep at 0x000002AEA8C377B8>,
  '__dict__': <attribute '__dict__' of 'student' objects>,
   '__weakref__': <attribute '__weakref__' of 'student' objects>, '__doc__': None}

注意类一旦定义了,程序就直接运行了,而函数是定义好后,只有调用的时候程序才会运行

类的使用
class student:
    mingzu='汉族' #数据属性

    def learn(self): #函数属性
        print('is learning')

    def eat(self): #函数属性
        print('is eating')

    def sleep(self): #函数属性
        print('is sleeping')

#类的使用:查,删,改,增

#查
print(student.mingzu)
print(student.learn)
# 汉族
# <function student.learn at 0x0000023EBCCE76A8>

#增
student.nation='china'
print(student.__dict__['nation'])
#china

#删
del student.nation

#改
student.mingzu='苗族'
print(student.__dict__['mingzu'])
#苗族
__init__方法

该方法是在对象产生之后才会执行,只用来为对象进行初始化操作,可以有任意代码,但一定不能有返回值

class student:
    mingzu='汉族' #数据属性
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex


student1=student('sunwukong',666,'male')
student2=student('王二丫',18,'female')
print(student1.__dict__)
print(student2.__dict__)

#运行结果:
# {'name': 'sunwukong', 'age': 666, 'sex': 'male'}
# {'name': '王二丫', 'age': 18, 'sex': 'female'}

对象的使用
在对类进行实例化后直接调用该对象的属性

print(student1.name)
print(student1.age)

#运行结果:
# sunwukong
# 666

补充:
站的角度不同,定义出的类是截然不同的;
现实中的类并不完全等于程序中的类,比如现实中的公司类,在程序中有时需要拆分成部门类,业务类等;
有时为了编程需求,程序中也可能会定义现实中不存在的类,比如策略类,现实中并不存在,但是在程序中却是一个很常见的类。

类的总结

1.在没有学习类之前,数据和功能是相互分离的,我们在定义变量的时候有的需要定义一大堆的全局变量,通过类我们可以将一些对象公用或者相似的属性,进行总结成类,简化代码的重复。换句话说:将数据与专门操作该数据的功能整合到一起。
2.类使程序的可扩展性变高。在有多个对象的时候,可通过新增一个类的属性将其赋给所有的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值