Python 是一种面向对象的编程语言。在 Python 中,几乎所有东西都是对象,都具有其属性和方法。

类似于对象构造函数或用于创建对象的“蓝图”的类。

创建一个类

要创建一个类,请使用关键字 class:

示例,创建一个名为 MyClass 的类,其中包含一个名为 x 的属性:

class MyClass:
x = 5

创建对象

现在,我们可以使用名为 MyClass 的类来创建对象:

示例,创建一个名为 p1 的对象,并打印 x 的值:

p1 = MyClass()
print(p1.x)

init() 函数

上面的示例是最简单形式的类和对象,不太适用于实际应用程序。要理解类的含义,我们必须了解内置的 init() 函数。所有类都有一个名为 init() 的函数,该函数在初始化类时始终执行。使用 init() 函数来为对象属性分配值,或者在创建对象时需要执行的其他操作:

示例,创建一个名为 Person 的类,使用 init() 函数为 name 和 age 分配值:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age p1 = Person("John", 36) print(p1.name)
print(p1.age)

注意: 每次使用类创建新对象时,init() 函数都会自动调用。

str() 函数

str() 函数控制当类对象表示为字符串时应返回什么。如果未设置 str() 函数,则返回对象的字符串表示:

示例,没有 str() 函数的对象的字符串表示:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age p1 = Person("John", 36) print(p1)

示例,带有 str() 函数的对象的字符串表示:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age def __str__(self):
return f"{self.name}({self.age})" p1 = Person("John", 36) print(p1)

对象方法

对象也可以包含方法。对象中的方法是属于对象的函数。让我们在 Person 类中创建一个方法:

示例,插入一个打印问候的函数,并在 p1 对象上执行它:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age def myfunc(self):
print("Hello my name is " + self.name) p1 = Person("John", 36)
p1.myfunc()

注意: self 参数是对类的当前实例的引用,并用于访问属于类的变量。

self 参数

self 参数是对类的当前实例的引用,并用于访问属于类的变量。它不一定要命名为 self,您可以根据需要命名它,但它必须是类中任何函数的第一个参数:

示例,使用 mysillyobject 和 abc 代替 self:

class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age def myfunc(abc):
print("Hello my name is " + abc.name) p1 = Person("John", 36)
p1.myfunc()

修改对象属性

您可以像这样修改对象的属性:

示例,将 p1 的年龄设置为 40:

p1.age = 40

删除对象属性

您可以使用 del 关键字来删除对象的属性:

示例,从 p1 对象中删除 age 属性:

del p1.age

删除对象

您可以使用 del 关键字来删除对象:

示例,删除 p1 对象:

del p1

pass 语句

类定义不能空,但如果由于某种原因类定义没有内容,请插入 pass 语句以避免出错。

示例

class Person:
pass

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

Python 面向对象编程:类、对象、初始化和方法详解的更多相关文章

  1. 【转】Python的hasattr() getattr() setattr() 函数使用方法详解

    Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值 ...

  2. StringUtils类API及使用方法详解

    StringUtils类API及使用方法详解 StringUtils方法概览 判空函数 1)StringUtils.isEmpty(String str) 2)StringUtils.isNotEmp ...

  3. Python学习之旅—生成器对象的send方法详解

    前言 在上一篇博客中,笔者带大家一起探讨了生成器与迭代器的本质原理和使用,本次博客将重点聚焦于生成器对象的send方法. 一.send方法详解  我们知道生成器对象本质上是一个迭代器.但是它比迭代器对 ...

  4. Python 面向对象编程——类定义与对象

    <类定义与对象声明> 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对 ...

  5. python -- 面向对象编程(类、对象)

    一.类 类是用来描述具有相同的属性和方法的对象的集合. 它定义了该集合中每个对象共同拥有的属性和方法. 类是一个独立的单位,它有一个类名,其内部包括成员变量和成员方法,分别用于描述对象的属性和行为. ...

  6. Python面向对象编程 -- 类和实例、访问限制

    面向对象编程 Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程 ...

  7. Python面向对象编程-类的封装,继承、多态

    面向对象是一种程序设计思想,对象作为程序基本单元,包含了数据和操作数据的函数. 面向对象的三大特点--数据封装.多态和继承. #类的创建,class关键字,类名大写,object表示从哪个类继承而来, ...

  8. python面向对象-4类的继承与方法的重载

    1.类的继承与方法的重载 上面就是先定义了一个类A,然后由定义了一个类B,B继承了类A,这样B就有了A的非私有属性和方法. class Washer: company='ZBL' def __init ...

  9. python学习笔记8--面向对象--属性和方法详解

    属性: 公有属性  (属于类,每个类一份) 普通属性  (属于对象,每个对象一份) 私有属性    (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法:(按作用) 构造方法 析构函数 方法: ...

  10. Java的Graphics类进行绘图的方法详解

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等 ...

随机推荐

  1. Pycharm里Python运行窗口显示乱码���的解决方法

    当你的Python程序运行后,会在运行窗口中显示乱码 ��� 等字样,如下 原因是 Pycharm中默认设置只显示UTF-8编码的格式,需要修改支持显示中文支持. 解决方法: 菜单中选择 File S ...

  2. 用googletest写cpp单测

    框架概述 Google Test(也称为 googletest)是由 Google 开发的 C++ 单元测试框架.它的首个版本是在2004年发布的,作为 Google 内部的测试框架使用.随后,Goo ...

  3. 【环境搭建】docker+nginx部署PHP

    目的 使用docker容器完成nginx的安装以及部署PHP网页 步骤 一. 安装nginx 1. 拉取Nginx镜像 docker pull nginx //拉取镜像 docker images / ...

  4. 开发自己的Prometheus Exporter、实现自定义指标

    Prometheus Exporter基础知识 Prometheus Exporter的概念.工作原理  Prometheus Exporter是一个用来收集和暴露指标数据的工具,通过与Prometh ...

  5. typedef和define有什么区别

    typedef 和define 都是替一个对象取一个别名,以此增强程序的可读性,区别如下: 使用不用 define 定义后面不用加分号,并且它的别名在对象的前面 typedef需要加分号,并且它的别名 ...

  6. SQLServer 数据库 Money 和 Float 类型运算的奇怪显现

    SQLServer 数据库 Money和 Float类型运算的奇怪显现 1.1 背景 1.2 场景描述 1.3 原因及解决办法 1.1 背景 最近在做一个优化的项目 1.2 场景描述 DECLARE ...

  7. 「Python实用秘技16」快速提取字体子集

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第16 ...

  8. Trackbar调色板

    我们将会建立一个简单的应用,显示我们指定的颜色.将会建立一个窗口,显示三个trackbar指定RGB三个颜色通道值.可以滑动trackbar来改变相应的颜色.默认情况下,初始颜色为黑色. cv2.ge ...

  9. 关于自定义程序打包成jar包,并读取配置

    前言 在实际开发过程中,我们有时候有把你编写的一段程序打成jar包的需求,而一些配置是需要去配置文件里面读取关于这项目的一些配置,本人在网络上查询了众多的资料,总的来说可以归为3类 1.从数据库读取配 ...

  10. [jenkins]连接git仓库

    连接gitlab 在jenkins添加全局凭据,类型为"ssh username with private key",填写git用户名和ssh私钥信息(注意是git客户端所在机器的 ...