类,对象,方法与函数的区别

article/2025/9/20 21:38:21

面向对象(Object oriented Programming,OOP)编程 的思想主要是针对大型软件设计而来的。面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,使程序的扩展性更强、可读性更好,从而大大提高了编程的效率。
  
  Python 完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承、多态、封装等。
  Python 中,一切皆对象。例如,数据类型、函数等,都是对象。
  
  Python 支持面向过程、面向对象、函数式编程等多种编程范式。

面向对象、面向过程区别:

相同点:

都是解决问题的思维方式,都是代码组织的方式

不同点:

面向过程(Procedure Oriented)思维:
面向过程编程更加关注的是“程序的逻辑流程”,是一种“执行者”思维,适合编写小规模的程序。
面向对象(Object Oriented)思维:
面向对象更加关注的是“软件中对象之间的关系”,更契合人的思维模式,是一种“设计者”思维,适合编写大规模的程序。面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。面向过程和面向对象是相辅相成的,面向对象离不开面向过程。

面向对象思考方式
遇到复杂问题,先从问题中找名词(面向过程更多的是找动词),然后确立这些名词哪些可以作为类,再根据问题需求确定的类的属性和方法,确定类之间的关系。

对象由来:

简单数据:例如2.0,3,5……
数组:相同类型的数据放到一起
结构体:将多种不同类型的数组存放在一起
对象:将不同类型的数据,方法存放到一起
alt
类:类将行为和状态打包在一起,即对象是类的具体实体,一般称为“类的实例”。
  从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属
性值(不共享状态)。更具体一点:“方法代码是共享的,属性数据不共享”。
alt

Python中定义类的语法:
    Class 类名:
      类体

要点如下:

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

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

class Animal():def __init__(self,name,sound):  #构造方法第一个参数必须为 selfself.name = name    #构造该类的属性self.sound = sounddef print_sound(self):  #实例方法print('{0}发出了"{1: ^4}"的声音。'.format(self.name,self.sound))cat = Animal('小花','喵喵') #实例类Animal的一个对象cat,自动调用__init__()方法
cat.print_sound()   #cat调用自己的方法运行结果:
小花发出了" 喵喵 "的声音。

__init__() 和 __new__()方法
  类是抽象的,也称之为“对象的模板”。 我们需要通过类这个模板,创建类的实例对象,然后才能使用类定义的功能。
而在Python中,Python对象包括几个部分:
alt

所以,我们需要定义构造函数 __init__() 方法,该方法会向我们所定义的对象中赋予对象的属性。构造方法用于执行“实例对象的初始化工作”,即对象创建后,初始化当前对象的相关属性,无返回值。

__init__()的要点如下:

  1. 名称固定,必须为:init()
  2. 第一个参数固定,必须为:self。 self 指的就是刚刚创建好的实例对象。
  3. 构造函数通常用来初始化实例对象的实例属性,例如,示例1中初始化实例属性:name和sound
  4. 通过“类名(参数列表)”来调用构造函数。调用后,将创建好的对象返回给相应的变量。比如: cat = Animal(‘小花’,‘喵喵’)
  5. __init __()方法:初始化创建好的对象,初始化指的是:“给实例属性赋值”
  6. __new __()方法: 用于创建对象,但我们一般无需重定义该方法。
  7. 如果我们不定义__init__方法,系统会提供一个默认的__init__方法。如果我们定义了带参的__init__方法,系统不创建默认的__init__方法。
    注:
    Python 中的 self 相当于 C++中的 self 指针,JAVA 和 C#中的 this 关键字。Python 中,self 必须为构造函数的第一个参数,名字可以任意修改。但一般遵守惯例,都叫做 self。

实例属性和实例方法

实例属性

实例属性是从属于实例对象的属性,也称为“实例变量”。他的使用有如下几个要点:

  1. 实例属性一般在__init__()方法中通过如下代码定义:
     self.实例属性名 = 初始值
  2. 在本类的其他实例方法中,也是通过 self 进行访问:
     self.实例属性名
  3. 创建实例对象后,通过实例对象访问:
     obj01 = 类名() #创建对象,调用__init__()初始化属性
     obj01.实例属性名 = 值 #可以给已有属性赋值,也可以新加属性

实例方法

实例方法是从属于实例对象的方法。实例方法的定义格式如下:
 
    def 方法名(self ,[形参列表]):
      函数体

方法的调用格式如下:
    对象.方法名([实参列表])
要点:

  1. 定义实例方法时,第一个参数必须为 self。和前面一样,self 指当前的实例对象。
  2. 调用实例方法时,不需要也不能给 self 传参。self 由解释器自动传参

函数和方法的区别

  1. 都是用来完成一个功能的语句块,本质一样。
  2. 方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点。
  3. 直观上看,方法定义时需要传递 self,函数不需要。

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

类中其他操作:

  1. dir(obj)可以获得对象的所有属性、方法
  2. obj.__dict__ 对象的属性字典
  3. pass 空语句,相当于占位符。
  4. isinstance(对象,类型) 判断“对象”是不是“指定类型”。

http://chatgpt.dhexx.cn/article/L753MXM3.shtml

相关文章

C++的类和对象

目录 C面向对象的三大特性:封装、继承、多态 封装 构造函数和析构函数 构造函数的分类与调用 深拷贝与浅拷贝 类对象作为类成员 静态成员 成员变量和成员函数是分开存储的 const修饰成员函数 友元 运算符重载 继承 多态 C面向对象的三大特性&#xff1…

java实例和对象对象的区别_java中实例与对象的区别和联系

对象是抽象的说法,你可以把它看作一个符合它自身定义的所有实例的代表,而实例则是对象的现实体现。 你可以说一个实例是一个对象,但你不能说一个对象是一个实例。因为定义对象时只是把自身的规则和逻辑定义好,实例可以通过输入不同…

怎么来理解java类和对象的区别

对象在需求中的使用 在具体问题中如何使用面向对象去分析问题,和如何使用面向对象。 以把大象装冰箱为例进行分析:在针对具体的需求,可以使用名词提炼的办法进行分析,寻找具体的对象。 需求:把大象装冰箱里 对象&…

C++类对象和类指针的区别

好奇这个&#xff0c;所以参考了一些帖子&#xff0c;写下心得。 一篇转载率较高的帖子&#xff1a;C 类对象和 指针的区别 大佬都不贴结果。。。。所以这里我给出代码和结果&#xff1a; #include<iostream> using namespace std;class Test{ public:int a;Test(){a …

Java中类和对象的区别

一、类和对象 1、类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合简单理解&#xff1a;类就是对现实事物的一种描述 类的组成 属性&#xff1a;指事物的特征&#xff0c;例如&#xff…

安装svn 汉化包 也不能设置中文

(以下为亲测!) 汉化包地址:https://osdn.net/projects/tortoisesvn/storage 进入地址之后:选择对应版本-->>Language Packs-->>选择中文包 问题: 已经安装svn汉化包,但是不能设置为中文. 解决: 确保汉化包版本对应svn版本.如果汉化包版本已经对应svn版本,则把…

SVN汉化失败的原因及解决方案(通过SVN官网下载SVN和相应的汉化包)

1、没删除SVN根目录语言包里的所有文件 2、汉化包没放在SVN根目录的语言文件夹下安装 3、SVN版本和汉化包版本不一致 首先看自己电脑上安装的svn是什么版本&#xff1a; 比如我的就是 TortoiseSVN 1.11.1&#xff0c;那我就要找TortoiseSVN 1.11.1对应的TortoiseSVN 1.11.1l…

Tortoise SVN 汉化(官网下载汉化包)

&#xff08;本操作是已经下载Tortoise SVN后 &#xff0c;通过官网下载汉化包进行的操作&#xff09; 1、首先进入到官网 https://tortoisesvn.net/downloads.html 2、进入到官网首页&#xff0c;点击Translations 3、进入到翻译页面&#xff0c;点击download 4、进入到下…

window eclipse快速导入svn项目以及软件汉化

刚入职新公司&#xff0c;之前几家公司使用得IDE跟代码管理是idea跟gitlab,公司内sap/erp系统&#xff0c;立项时间较早&#xff0c;使用得是eclipsesvn。 进行导入项目之前&#xff0c;英语水平较差得得同学&#xff0c;可以将软件先进行快速汉化 1、如图 2、在弹出得输入框中…

关于svn汉化包安装无效的解决办法

下载svn汉化包要和对应的svn客户端版本对应&#xff0c;否则安装无效&#xff0c; 在安装前要想将svn安装目录下的languages目录下的文件全部删除 还有一点要注意的是 汉化包安装要放在svn安装目录下进行安装&#xff0c;它才能正常汉化 安装完后就可以选择语言了

SVN安装包汉化VS插件

一.SVN客户端安装 首先下载SVN 地址&#xff1a;https://tortoisesvn.net/downloads.zh.html 根据版本进行选择 安装直接下一步下一步默认文件夹就好了 安装完成右键就会有二个多出来的菜单 都是英文不是很方便 二.语言转换 在下载SVN的下面就有语言包可以一起下载 进行语…

svn汉化插件安装步骤

1.svn安装好之后&#xff0c;查看svn安装的版本&#xff0c;比如我的svn是1.9.7.27907版本 64位的。 2.去svn官网&#xff1a;https://tortoisesvn.net/ 3.将网站显示中文版&#xff0c;便于查看&#xff1a; 4.点击“下载”&#xff1a; 5.看版本一致&#xff0c;往下拉&#…

SVN基本使用1

一、什么是SVN 代码管理工具 能记住每次的修改 查看所有的修改记录 恢复到任何历史版本 恢复已删除的文件 二、跟Git比 SVN使用简单上手快支持中文(Git较为复杂不支持中文) 目录级权限控制(Git没有),企业级安全必备 可以单独子目录checkOut(Git只能将整个仓库),可以减少…

Svn下载及安装(附带汉化包安装)

1、访问Svn官方网站&#xff1a;https://tortoisesvn.net 2、找到需要下载的版本类型 3、下载完成后一直下一步安装即可 4、Svn安装包下载 5、下载完成之后&#xff0c;一直下一步即可 6、安装好之后&#xff0c;在任意空白位置 —> 右击 —> 选择TortoiseSVN —> …

Windows安装SVN客户端并汉化

1、下载 https://tortoisesvn.net/downloads.zh.html 2、安装 鼠标双击 3、汉化 汉化包下载地址&#xff1a;https://tortoisesvn.net/downloads.zh.html 鼠标双击汉化包 点击svn的各种界面查看是否汉化成功

SVN下载以及汉化安装包的使用

前言&#xff1a; SVN&#xff08;subversion&#xff09;是一个开放源代码的版本控制系统&#xff0c;通过采用分支管理系统的高效管理&#xff0c;实现资源的共享&#xff0c;实现集中式的管理。 SVN下载&#xff1a; 第一步&#xff1a; https://tortoisesvn.net/downloads…

SVN汉化以及简单的使用

一、SVN的安装以及汉化 1.下载SVN的安装包以及汉化包&#xff1b; 2.先安装SVN汉化包&#xff0c;然后安装SVN的程序软件&#xff0c;都安装完成后&#xff0c;在空白位置右击选择设置&#xff0c;在language中选择中文简体&#xff0c;点击确认即可&#xff1b; 至此&#xff…

安装svn和安装svn汉化语言包

svn官网&#xff1a; https://tortoisesvn.net/downloads.zh.html 这里下安装包 和语言包&#xff0c;以此安装即可&#xff1b;都默认安装就行了

解决SVN汉化不成功问题,下载历史版本

考虑是不是版本不一致问题。如果想汉化&#xff0c;最好在安装svn都下载了&#xff0c;直接安装。免得像我一样过了好久还得找对应版本安装≥﹏≤ 查看自己安装的svn历史版本 在官方网站找到对应的版本汉化包 点击版本连接找到对应版本–选择汉化包–找到中文点击下载&#…

SVN汉化包安装方法

注意&#xff1a;下载的svn汉化包必须与svn客户端版本对应&#xff0c;否则安装无效 1、首先安装svn客户端&#xff0c;然后将svn汉化包放在svn的安装目录下。 2、安装svn汉化包之前&#xff0c;将svn安装目录下的languages目录下的文件全部删除 。 3、svn汉化包安装完成后&am…