day25--python初识类和对象

一、面向对象的定义

  说到面向对象,我们先来看一下面向过程的定义:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。优点:降低了程序的复杂度,使得程序的运行过程变得直观明了。缺点:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身。

  面向对象的定义:面向对象的程序设计的核心是对象,万物皆对象。优点:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精准的预测问题的处理流程与结果,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。于是我们经常看到一个游戏人某一参数的修改极有可能导致阴霸的技能出现,一刀砍死3个人,这个游戏就失去平衡。

二、类和对象

  类是一个抽象的概念,是把一类事物的想的特征和动作整合到一起。对象是基于类而创建出来的一个个具体的‘对象‘,也是特征和动作整合到一块。必须牢记类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

三、定义类

  在Python中,定义类是通过class关键字:

class Student(object):  #类名首字母要大写,object为继承对象
    pass

>>> bart = Student()   #创建创建出Student的实例
>>> bart
<__main__.Student object at 0x0000000002F12EB8>  #变量bart指向的就是一个Student的实例,后面的0x10a67a590是实例的内存地址
>>> Student
<class ‘__main__.Student‘>

  下面来看一个具体的例子:

class Student(object):
   ability = ‘优秀‘
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def ask_questions(self):
        print(‘{0}正在问数学问题‘.format(self.name))

    def examination(self):
        print(‘{0}考试的成绩为{1}‘.format(self.name,self.score))

student1 = Student(‘XiaoMing‘,90,) #类的实例化
print(student1.__dict__)  #查看实例属性
print(Student.__dict__)   #查看类属性
student1.ask_questions()  #实例调用类的函数属性,实例没有函数属性,只能调用类的函数属性
print(student1.ability)   #访问类的数据属性

  1.类的函数属性中所传入的self其实就是实例本身(student1)

  2.实例调用的是类的函数属性,实例没有函数属性,只能调用类的函数属性

  3.实例在调用数据属性的时候如果在__init__里找不到,那么就会向上一层找,再找不到就不报错

  类属性的增删改查

class Student(object):
    ability = ‘优秀‘
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def ask_questions(self):
        print(‘{0}正在问数学问题‘.format(self.name))

    def examination(self):
        print(‘{0}考试的成绩为{1}‘.format(self.name,self.score))

student1 = Student(‘XiaoMing‘,90,) #类实例的实例化
print(Student.ability)  #查看

Student.ability = ‘良好‘ #修改
print(Student.ability)

Student.sport = ‘basketball‘ #增加
print(Student.sport)
print(Student.__dict__) #查看属性字典中是否增加了sport这一项

del Student.sport  #删除
print(Student.__dict__) #查看属性字典中是否删除了sport这一项
print(Student.sport)  #AttributeError: type object ‘Student‘ has no attribute ‘sport‘

  实例属性的增删改查

class Student(object):
    ability = ‘优秀‘   L = [‘a‘,‘b‘]
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def ask_questions(self):
        print(‘{0}正在问数学问题‘.format(self.name))

    def examination(self):
        print(‘{0}考试的成绩为{1}‘.format(self.name,self.score))

student1 = Student(‘XiaoMing‘,90,) #类实例的实例化
print(student1.ability)  #查看

student1.name = ‘XiaoHua‘ #修改
print(student1.name)

student1.sport = ‘basketball‘ #增加
print(student1.sport)
print(student1.__dict__) #查看属性字典中是否增加了sport这一项

del student1.sport  #删除
print(student1.__dict__) #查看属性字典中是否删除了sport这一项

#输出:
优秀
XiaoHua
basketball
{‘name‘: ‘XiaoHua‘, ‘score‘: 90, ‘sport‘: ‘basketball‘}
{‘name‘: ‘XiaoHua‘, ‘score‘: 90}

  补充:

  在上面调用student1.L.append(‘c‘),此时改的是类的L,因为实例student1中根本没有这个属性。

  但是如果是student.L = [‘q‘,‘w‘,‘e‘] 此时相当于新增了一个实例的L属性列表,对类的数据属性中的L并不会产生任何影响

  注意:新增属性是通过赋值操作来完成的。

时间: 2024-10-22 13:36:26

day25--python初识类和对象的相关文章

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3:

Python的类和对象 入门级讲解(简单粗暴)

前言:本人是Python初学者.在学到Python的类和对象的时候,被'高深'的概念虐得死去活来.上网提问,得到的回复几乎都是'大神们'藏着掖着迫不得已才挤出来的只言片语:上网搜文章,长长的篇幅,那些字都认得,但是就是不知道是什么意思,并且都是反复地复制粘贴而导致文章排版极其辣眼睛. 一个阴郁的冬天,我在YouTube上搜到一个视频作者John Philip Jones,发现一个关于Python类和对象的讲解.这是目前为止我看到的最利于小白学习Python的讲解方法.由于在国内上YouTube不

python基础(类、对象、包)完整的总结

python基础(类和对象.包)类和对象对象是看的见摸的着的类是模板对象需要类才能创建出来类的构成(三个部分)类的名称:类名类的属性:一组数据类的方法:允许进行操作的方法(行为)class 类名():def添加方法class Cat():def run(self):print("cat is running")xiaobai = Cat()xiaobai.run()xiaobai.name = "小白"xiaobai.age = 40类的属性属性就是变量一个类可以创

8.python之面相对象part.1(初识类与对象)

一.类和对象的概念. 什么是类 类就是把一类事物相同的特征和动作整合到一起就是类比如说"人"就是一个类. 什么是对象 对象就是基于类创建出来的一个具体存在的事物这个事物包含了将其创造出来的类的特征和动作. 类与对象有什么关系一切的对象都是由类产生的假如说造一支笔首先要有一个造笔的模版上帝制造人也是一样制造一个人也需要一个造人的模版这个模板就是人的"类"然后根据类的定义来产生一支支笔和一个个的人. 什么是实例化 由类产生对象的过程就是实例化类实例化的结果就是一个对象对

python基础-第七篇-7.1初识类和对象

创建类和对象 刚开始我们接触得多的编程方式为面向过程编程,这种方式就是根据业务逻辑从上往下垒代码,后来又出现了函数式编程,就是为了提高代码的重用性,减轻程序猿的工作量--而今天我们即将学的 面向对象编程则是使用类和对象来实现的,类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数 class是关键字,表示类 创建对象--类名称后加括号 #创建类 class foo: def bar(self): print('bar') def

python的类和对象——进阶篇

写在前面的话 终于,又到了周五.当小伙伴们都不再加班欢欢喜喜过周末的时候,我刚刚写完这一周的游戏作业,从面对晚归的紧皱眉头到现在的从容淡定,好像只有那么几周的时间.突然发现:改变——原来这么简单.很多时候我们在想要为自己的青春拼搏一次的时候都输给了偶尔的抵触和轻松愉悦的生活.我们不过和走到最后的人差了两个字——坚持!所以尽管进入类和对象这一部分,大家都会有畏难心理,但是坚持一下下,你就会是那个走到最后的人! 回顾 上一篇中我们初步的认识了类和对象,了结了它们的一些语法,就相当于得到了一个对象的骨

python的类和对象——番外篇(类的静态字段)

什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释一下什么叫做静态字段:        我们看上面的例子,左中右三张图,左边是纯净的代码,中间是

【Python】类和对象、继承、使用文件、存储、异常、标准库(不懂)

当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)--这就是self的原理了. 2.__init__ __init__ 方法名别写错了! __init__ 用来定义变量的 self一定要写!! 默认带的参数!!不管你新建的函数中有没有定义参数!! 3.类和对象 (有疑问?!!__del__ 方法没有用到) !!!!!!!!!!缩进和注释很重要啊啊啊啊!!!!!!!!

python基础 类与对象

类与对象的概念 类即类别.种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体. 在现实世界中:肯定是先有对象,再有类 在程序中:务必保证先定义类,后产生对象 在Python中程序中的类用class关键字定义,而在程序中特征用变量标识,技能用函数标识,因而类中最常见的无非是:变量和函数的定义 class Student: school='xxxxx' def learn(self): print('is learning') def eat(se