类与对象

1.什么是面向对象

  面向对象是一种编程思想,用来指导程序员如何编写出更好的程序。面向对象编程的核心是对象,程序就是一系列对象的集合,程序员负责调度控制这些对象来交互完成任务。

  补充:对象不是凭空产生的,需要我们自己去设计

  优点:①扩展性;②灵活性;③重用性。

  缺点:①程序 的复杂度度提高了;②无法准确预知结果。

  使用场景:对扩展性要求较高的程序,通常是直接面向用户的。

2.什么是面向过程编程

  面向过程编程的核心是过程,而过程就是一步一步的执行步骤。

  优点;①逻辑清晰;②能进复杂的问题简单化;③流程化。

  缺点:①扩展性差;②可维护性差。

  使用场景:对扩展性要求较低的程序中。

2.类和对象

  类指类型,类别,是一种抽象概念,是一系列具备相同行为的对象的集合。

  对象是指具体存在的某个事物,具备自己的特征和行为。对象可以看成是特征和技能的结合体。

1.类和对象的关系

  类包含一系列对象,对象属于类。在生活中先有对象再有类,而在程序中是先有类再有对象。

  结论:在使用面向对象编程时,第一步就是思考需要什么样的对象,对象具备什么样的特征和行为,从而根据这些信息总结出需要的类型。

2.创建类和对象

(1).定义类的语法

  类中的内容用来描述属性和技能。其中描述属性用变量,描述行为用函数。

  类名称的书写规范。首先是要见名知意,名称是大驼峰命名法,驼峰就是单词首字母大写 , 大驼峰是第一个字母大写,小驼峰是第一个字母小写。

(2).创建对象的语法

 ‘‘‘python class Person pass
 ’’’ 
创建对象
 p = Person() ..... 

2.属性

  属性的写法:   ‘‘‘ python

  属性可以写到类里面。不过类里面的属性是所有对象所公共的。属性也可以写到对象中,对象中的属性,是每个对象所独特的。如果类中和对象中存在相同的属性,先访问对象,如果对象里面没有再访问类。

(2).属性的增删改查

‘‘’python

增加属性

  对象变量名称.属性名称 = 属性值

删除属性

  del 对象的变量名称.属性名称

修改属性

  对象.属性 = 新的值

查看属性 (访问的是对象的所有属性)

  print(对象.__dict__)

访问对象的类信息

  print(对象.__class__)

(3).init方法

  init方法叫做初始化方法,本质上就是一个函数。

特点1:当实例化对象时,会自动执行init方法

特点2:会自动将对象作为第一个参数传入,参数名称为self,self也可以用其他的名字来替代,但不建议改

功能:用户给对象赋初始值

# 创建一个类具备几个属性,通过初始化方法来给他设置属性
class Teacher():
    def __init__(self,kind,age,hobby):
        self.kind = kind
        self.age = age
        self.hobby = hobby

t1 = Teacher("math",26,"reading")
t2 = Teacher("English",31,"shopping")

print(t1.__dict__)
>>>:{'kind': 'math', 'age': 26, 'hobby': 'reading'}
print(t1.kind)
>>>:math
print(t2.age)
>>>:31
# 注意:该函数不能有任何返回值,只能None。

  补充:对象的精髓就是讲数据和处理数据的函数整合到一起 ,这样一来拿到一个对象就同时拿到了需要处理的数据以及处理数据的函数。

3.绑定方法

1.对象的绑定方法

  默认情况下类中的方法都是对象绑定方法。

  作为第一个参数其特殊之处在于,当使用对象调用该函数时会自动传入对象本身,

  作为第一个参数,当使用类名来调用时他就是一个普通函数,有几个参数就得传几个参数。

#练习:写一个学生类,具备一个打招呼的技能 要能输出自己的名字信息
class Student():
    def __init__(self,name,age):
        self.name = name
        self.age = age
s1 = Student("li")
print("大家好,我是%s,今年20岁"%(s1.name,s1.age))
 >>>:大家好,我叫li,今年20岁        

2.类绑定方法

类绑定方法可以用@classmethod来装饰

特殊之处:不管用类还是还是对象调用,都会自动传入类本身,作为第一个参数。

什么时候绑定给对象:当函数逻辑需要访问对象中的数据时

什么时候绑定给类:当函数逻辑需要访问类中的数据时

3.非绑定方法

非绑定方法可以叫做静态方法,就是既不需要访问类的数据,也不需要访问对象的数据

语法:@staticmethod

原文地址:https://www.cnblogs.com/blue-tea/p/11240196.html