类的方法和函数的区别,请解释一下什么是函数什么是类和对象

  类的方法和函数的区别,请解释一下什么是函数什么是类和对象

  

面向对象(Object oriented Programming,OOP)编程

的思路主要是针对大型软件设计。面向对象编程将与数据和操作数据相关的方法封装成对象,代码和数据的组织方式更贴近人的思维,使得程序更具可扩展性和可读性,从而大大提高了编程的效率。

  Python完全采用面向对象的思想,是真正的面向对象编程语言,完全支持面向对象的基本功能,如继承、多态、封装等。

  在Python中,一切都是对象。比如数据类型,函数等。都是对象。

  

Python 支持面向过程、面向对象、函数式编程等多种编程范式。

  面向对象和面向过程的区别:相似之处:都是解决问题的思维方式和代码组织方式。

  差异:

面向过程(Procedure Oriented)思维:

  面向过程编程更注重“程序的逻辑流程”,是一种“执行者”思维,适合写小规模的程序。

面向对象(Object Oriented)思维:

  面向对象更注重“软件中对象之间的关系”,更符合人的思维模式。是一种“设计师”思维,适合写大型程序。面向对象可以帮助我们从宏观的角度把握和分析整个系统。但是具体的微操作(也就是一次一个方法)还是需要流程化的思维。面向过程和面向对象是相辅相成的,面向对象离不开面向过程。

  

面向对象思考方式

  遇到复杂问题时,先从问题中找出名词(面向过程,动词较多),然后确定这些名词中哪些可以作为类,再根据问题的要求所确定的类的属性和方法来确定类之间的关系。

  对象的原点:简单数据:例如,2.0,3,5.

  数组:相同类型的数据放在一起。

  结构:将许多不同类型的数组存储在一起。

  对象:将不同类型的数据和方法存储在一起。

  类:一个类将行为和状态打包在一起,即对象是一个类的具体实体,一般称为“类的实例”。

  当从一个类创建对象时,每个对象将共享该类的行为(在该类中定义的方法),但是它将有自己的类。

  性值(未共享状态)。更具体地说:“方法代码共享,但属性数据不共享”。

  Python中定义类的语法:

  类名:

  类似物体

  

要点如下:

  类名必须符合“标识符”的规则;一般首字母大写,多个单词用“驼峰原理”。在类中,我们可以定义属性和方法。属性用于描述数据,方法(即函数)用于描述与这些数据相关的操作。

【示例1】

定义一个动物类,实例化cat,打印出它发出的声音。

  ClassAnimal (): def _ _ init _ _ (self,name,sound): #构造函数的第一个参数必须是self self.name=name #构造属性self。sound=sounddef print _ sound (self)该类:#实例方法print({0})发出了“{1: 4}”。格式(自我。名字,自我。sound)) cat=Animal (zzdtn ,喵)#实例类Animal的一个对象cat自动调用__init__()方法cat.print_sound() #cat调用自己的方法运行结果:zzdtn发出喵的声音。

__init__() 和 __new__()方法

  

类是抽象的,也称之为“对象的模板”。

我们需要通过类的模板创建类的实例对象,才能使用类定义的函数。

  而在Python中,Python对象包括几个部分:

  所以我们需要定义构造函数

__init__()

方法,这个方法会把对象的属性赋予我们定义的对象。方法用于初始化实例对象,即创建对象后,初始化当前对象的相关属性,没有返回值。

  

__init__()的要点如下:

  名称是固定的,必须是:

init

()。第一个参数是固定的,必须是:self。Self是指刚刚创建的实例对象。构造函数通常用于初始化实例对象的实例属性。比如例1,实例属性初始化:name和sound通过“类名(参数列表)”调用构造函数。调用后,创建的对象返回到相应的变量。例如:cat=animal (ZZ DTN ,喵喵喵)__init __()方法:初始化创建的对象。初始化是指:“给实例属性赋值”__new __()方法:用于创建对象,但我们一般不需要重新定义这个方法。如果我们不定义__init__方法,系统将提供一个默认的__init__方法。如果我们用参数定义__init__方法,系统将不会创建默认的__init__方法。

注:

  Python中的Self相当于C中的self指针,JAVA和C#中的这个关键字。在Python中,self必须是构造函数的第一个参数,其名称可以任意修改。但总的来说,遵循约定就是所谓的自我。属性和实例方法实例属性实例属性是从属于实例对象的属性,也称为“实例变量”。他的用途有以下几点:

  实例通常由以下代码在__init__()方法中定义:

  自我。实例属性名=初始值在这个类的其他实例方法中,访问也是通过self:

  自我。实例属性名称创建实例对象后,通过实例对象访问它:

  Obj01=class name () #创建一个对象并调用__init__()初始化属性。

  Obj01。实例属性名称=值#您可以为现有属性赋值,也可以添加新的属性实例方法。实例方法是从属于实例对象的方法。实例的定义格式如下:

  定义方法名(自身,[参数列表]):

  功能体

  该方法的调用格式如下:

  

对象.方法名([实参列表])

  关键点:

  定义实例方法时,第一个参数必须是self。和以前一样,self指的是当前实例对象。调用实例方法时,不需要也不能给self传递参数。self解释器自动传递的函数和方法的区别是用来完成一个函数的语句块,本质上是一样的。当调用方法时,它是通过对象调用的。方法从属于特定的实例对象,但是普通的函数没有这个特性。直观上,方法定义时需要传递self,而函数没有。

实例对象的方法调用本质:

  类中的其他操作:dir(obj)可以获取对象obj的所有属性和方法。__dict__对象的属性字典传递空语句,相当于一个占位符。Isinstance (object,type)确定“对象”是否为“指定类型”。

类的方法和函数的区别,请解释一下什么是函数什么是类和对象