广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python类的定义和使用方法是什么
  • 253
分享到

Python类的定义和使用方法是什么

2023-07-02 11:07:55 253人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python类的定义和使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python类的定义和使用方法是什么文章都会有所收获,下面我们一起来看看吧。一、前言在Python中,类表示具

这篇文章主要介绍了python类的定义和使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python类的定义和使用方法是什么文章都会有所收获,下面我们一起来看看吧。

    一、前言

    在Python中,类表示具有相同属性和方法的对象的集合。在使用类时,需要先定义类,然后再创建类的实例,通过类的实例就可以访问类中的属性和方法了。

    二、定义类

    在Python中,类的定义使用class关键字来实现,语法如下:

    class ClassName:“”“类的帮助信息”“”     # 类文本字符串statement            # 类体

    参数说明:

    • ClassName:用于指定类名,一般使用大写字母开头,如果类名中包括个词,第二个单词的首字母也要大写,这种命名方法也称为“驼峰式命名法”,这是惯例。当然,也可以根据自己的习惯命名,但是一般推荐按照惯例来命名。

    • “类的帮助信息”:用于指定类的文档字符串。定义该字符串后,在创建类的对象时,输入类名和左侧的括号“( ” 后,将显示信息。

    • statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没有想好类的具体功能,也可以在类体中直接使用Pass语句代替。

    class Geese:"""大雁类"""pass

    三、创建类的实例

    定义完成后,并不会真正创建一个实例。这就好比一个汽车的设计图。设计图可以告诉你汽车看上去怎么样,但设计图本身不是一个汽车。你不能开走它,它只能用来建造真正的汽车,而且可以使用它制造很多汽车。那么如何创建实例呢?

    class语句本身并不创建该类的任何实例。所以在类定义完成以后,可以创建类的实例,即实例化该类的对象。创建类的实例的语法如下:

    ClassName(parameterlist)

    参数说明:

    • ClassName:是必选参数,用于指定类。

    • parameterlist:可以选参数,当创建一个类时,没有创建__init__()方法,或者当__init__()方法只有一个self参数时, parameterlist可以省略。

    例如,创建上面Geese类的实例,可以使用下面代码:

    # 创建类class Geese:    """大雁类"""    pass# 创建实例wildGoose = Geese()print(wildGoose)

    执行上面代码后,将显示类似下面的内容:

    Python类的定义和使用方法是什么

    从上面的执行结果中可以看出,wildGoose是Geese类的实例。

    四、“魔术”方法——_ init _()

    在创建类后,类通常会自动创建一个__init__()方法。该方法是一个特殊的方法,类似JAVA 语言中的构造方法。每当创建一个类的新实例时,Python都会自动执行它。init()方法必须包含一个参数,并且必须是第一参数。self参数是一个指向实例本身的引用,用于访问类中的属性和方法。
    在方法调用时会自动传递实际参数self。因此,当__init__()方法只有一个参数时,在创建类的实例时,就不需要指定参数了。

    例如,下面乃然以大雁为例,并创建__init__()方法,代码如下:

    # 创建类class Geese:    """大雁类"""    def __init__(self):        print("我是大雁类")wildGoose = Geese()

    运行以上代码,将输出以下内容:

    Python类的定义和使用方法是什么

    常见错误:

    在为类创建__init__()方法时,在开发环境中运行下面的代码:

    # 创建类class Geese:    """大雁类"""    def __init__():             # 构建方法        print("我是大雁类")wildGoose = Geese()# 创建大雁实例

    运行上述代码,将抛出以下异常:

    Python类的定义和使用方法是什么

    在__init__()方法中,除了self参数外,还可以自定义一些参数,参数间使用逗号“,”进行分隔。例如,下面的代码将在创建__init__()方法时,再指定3个参数,分别是beak、wing和claw:

    # 创建类class Geese:    """大雁类"""    def __init__(self, beak, wing, claw):        print("我是大雁类!我有一下特征:")        print(beak)        print(wing)        print(claw)beak_1 = "喙"wing_1 = "翅膀"claw_1 = "爪"wildGoose = Geese(beak_1, wing_1, claw_1)

    运行上面代码,将显示以下结果:

    Python类的定义和使用方法是什么

    五、创建类的成员并访问

    类的成员主要由实例方法和数据成员组成。在类中创建了类的成员后,可以通过类的实例进行访问。下面进行详细介绍。

    1.创建实例方法并访问

    所谓实例方法是指在类中定义函数。该函数是一种在类的实例上操作的函数。同__init__()方法一样,实例方法的第一参数必须是self,并且必须包含一个self参数。

    创建实例的方法的语法格式如下:

    def functionName(self,parameterlist):block

    参数说明:

    • functionName:用于指定方法名,一般使用小写字母开头。

    • self:必要参数,表示类的实例,其名称可以是self以外的单词,使用self只是一个习惯而已。

    • parameterlist:用于指定除self参数以外的参数,各参数间使用逗号“,”进行分隔。

    • block:方法体,实现的具体功能

    实例创建完成后,可以通过类的实例名称和点(.)操作符进行访问。

    具体的语法格式如下:

    instanceName.functionName(parametervalue)

    参数说明:

    • instanceName:为类的实例名称

    • functionName:为要调用的方法名称

    • parametervalue:表示为方法指定对应的实际参数,其值的个数与创建实例方法中parameterlist的个数相同。

    2.创建数据成员并访问

    数据成员是指类中定义的变量,即属性,根据定义位置,又可以分为类属性和实例属性,下面分别进行介绍。

    类属性:类属性是指在定义类中,并且在函数体外的属性。类属性可以在类的所有实例之间共享值,也就是在所有实例化的对象中公用。

    例如,定义一个雁类,在该类中定义3个属性,用于记录雁的特征,代码如下:

    class Geese:    """大雁类"""    beak_1 = "喙,比较尖"  # 定义类属性(喙)    wing_1 = "翅膀,比较大"     claw_1 = "爪,行走自如"    def __init__(self):        print("我是大雁类!我有一下特征:")        print(Geese.beak_1)   # 输出喙的属性        print(Geese.wing_1)        print(Geese.claw_1)

    创建上面的类Geese,然后创建类的实例,代码如下:

    goose = Geese()  # 实例化一个雁的对象

    运行上面代码创建Geese类的实例后,将显示以下内容:

    Python类的定义和使用方法是什么

    实例属性:

    实例属性是指定义在类的方法中的属性,只作用于当前实例中。

    例如,定义一个雁类Geese,在该类的__init__()方法中定义3个实例属性,用于记录雁类的特征,代码如下:

    # 创建类class Geese:    """大雁类"""    def __init__(self):        self.beak_1 = "喙,比较尖"  # 定义实例属性(喙)        self.wing_1 = "翅膀,比较大"        self.claw_1 = "爪,行走自如"        print("我是大雁类!我有一下特征:")        print(self.beak_1)   # 输出喙的属性        print(self.wing_1)        print(self.claw_1)

    创建上面的类Geese,然后创建类的实例,代码如下:

    goose = Geese()  # 实例化一个雁的对象

    运行上面代码创建Geese类的实例后,将显示以下内容:

    Python类的定义和使用方法是什么

    说明:

    实例属性只能通过实例名访问。如果通过类名访问实例属性,将抛出如图所示的异常。

    Python类的定义和使用方法是什么

    对于实例的属性也可以通过实例名称修改,与类不同,通过实例名称修改实例属性后,并不能影响该类的其他实例中相应的实例属性值。例如,定义一个雁类,并在__init__()方法中定义一个实例属性,然后创建两个Geese类的实例,并修改一个实例属性,最后分别输出实例属性,代码如下:

    # 创建类class Geese:    """大雁类"""    def __init__(self):        self.beak_1 = "喙,比较尖"  # 定义实例属性(喙)        print(self.beak_1)goose1 = Geese()  # 创建Geese实例1goose2 = Geese()  # 创建Geese实例2goose1.beak_1 = "喙,比长鹅尖"  # 修改实例属性print("goose1的beak_1属性:", goose1.beak_1)print("goose2的beak_1属性:", goose2.beak_1)

    运行上面代码,将显示以下内容:

    Python类的定义和使用方法是什么

    六、访问限制

    在类的内部可以定义属性和方法,而在类的外部则可以直接调用属性或方法来操作数据,从而隐藏了类内部的复杂逻辑。但Python并没有对属性和方法的访问权限进行限制。为了保证类内部的某些属性或方法不被外部所访问,可以在属性或方法名前面添加单下划线(_foo)、双下划线(__foo)或者首尾加双下划线( __ foo __),从而限制访问权限。其中,单下划线、双下划线、首尾双下划线的作用如下:

    • __ foo __ :首尾双下划线表示定义特殊方法,一般是系统定于名字,如__init__()。

    • _foo:以单下划线开头的表示protected(保护)类型的成员,只允许类本身或子类访问,但不能使用“ from module impor”语句导入。

    例如,创建一个Swan类,定义保护属性_neck_swan,并在__init__()方法中访问该属性,然后创建Swan类的实例,并通过实例名输出保护属性_neck_swan,

    代码如下:

    class Swan:    """天鹅类"""    _neck_swan = "天鹅脖子长"  # 创建私有属性    def __init__(self):        print("__init__():", Swan._neck_swan)swan = Swan()  # 创建Swan类print("直接访问:", swan._neck_swan)

    执行以上代码,将显示以下内容:

    Python类的定义和使用方法是什么

    从上面的运行结果中可以看出:保护属性可以通过实例名访问。

    __foo:双下划线表示private(私有)类型的成员,只允许定义该方法的类本身进行访问,而且也不能通过类的实例进行访问,但是可以通过“类的实例名.类名 __xxx”方式访问。

    例如,创建一个Swan类,定义保护属性__neck_swan,并在__init__()方法中访问该属性,然后创建Swan类的实例,并通过实例名输出保护属性__neck_swan,

    代码如下:

    # 创建类class Geese:    """大雁类"""    def __init__(self, beak, wing, claw):        print("我是大雁类!我有一下特征:")        print(beak)        print(wing)        print(claw)beak_1 = "喙"wing_1 = "翅膀"claw_1 = "爪"wildGoose = Geese(beak_1, wing_1, claw_1)

    运行上面代码,将输出如图所示的结果:

    Python类的定义和使用方法是什么

    从上面的运行结果可以看出:私有属性可以通过“类名.属性名”方式访问,也可以通过“实例名.类名__xxx”方式访问,但是不能直接通过“实例名.属性名”方式访问。

    关于“Python类的定义和使用方法是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python类的定义和使用方法是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

    --结束END--

    本文标题: Python类的定义和使用方法是什么

    本文链接: https://www.lsjlt.com/news/341427.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python类的定义和使用方法是什么
      这篇文章主要介绍了Python类的定义和使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python类的定义和使用方法是什么文章都会有所收获,下面我们一起来看看吧。一、前言在Python中,类表示具...
      99+
      2023-07-02
    • java类的定义和使用方法是什么
      在Java中,类是一种用户自定义的数据类型,用于描述具有相同属性和行为的对象。类的定义包括类名、类的成员变量和方法。类的定义方法如下...
      99+
      2023-09-15
      java
    • Python枚举类定义和使用方法
      前言: 一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对...
      99+
      2022-11-11
    • javascript类的定义方法是什么
      小编给大家分享一下javascript类的定义方法是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法有:1、构造函数法,语法“function Cat(){...
      99+
      2023-06-14
    • Python装饰器的定义和使用方法是什么
      本篇内容主要讲解“Python装饰器的定义和使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python装饰器的定义和使用方法是什么”吧!1.装饰器的定义装饰器:给已有函数增加额外的...
      99+
      2023-06-30
    • 在Python中定义和使用抽象类的方法
      像java一样python也可以定义一个抽象类。 在讲抽象类之前,先说下抽象方法的实现。 抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象...
      99+
      2022-06-04
      定义 方法 抽象类
    • python类方法怎么定义
      本篇内容介绍了“python类方法怎么定义”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义类方法的定义需要借助于装饰器。在定义类方法时,需...
      99+
      2023-06-30
    • Python元组的定义及使用方法是什么
      本篇内容主要讲解“Python元组的定义及使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python元组的定义及使用方法是什么”吧!1、前言在Python中元组是一个和列表非常类似...
      99+
      2023-06-25
    • Python列表的定义及使用方法是什么
      这篇文章主要介绍“Python列表的定义及使用方法是什么”,在日常操作中,相信很多人在Python列表的定义及使用方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python列表的定义及使用方法是什么...
      99+
      2023-06-25
    • python中类中属性和方法怎么定义使用
      今天小编给大家分享一下python中类中属性和方法怎么定义使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
      99+
      2022-10-19
    • java中string类的定义方法是什么
      在Java中,可以使用以下方法来定义字符串(String)类:1. 使用字符串字面量:```javaString str = "He...
      99+
      2023-08-17
      java string
    • php类中定义变量的方法是什么
      在 PHP 的类中,定义变量有两种方法:属性和常量。属性属性是定义在类中的变量,可以在整个类中访问和修改。在 PHP 中,属性有三种访问控制符号:public(公共的)、protected(受保护的)和 private(私有的)。公共属性在...
      99+
      2023-05-14
    • ECMAScript定义类或对象的方法是什么
      ECMAScript通过使用class关键字来定义类和对象的方法。定义一个类的语法如下:```javascriptclass Cla...
      99+
      2023-10-11
      ECMAScript
    • C++类的定义与实现方法是什么
      这篇文章主要讲解了“C++类的定义与实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++类的定义与实现方法是什么”吧!一、类的定义根据C++ Primer中的描述,类的定义是一...
      99+
      2023-06-22
    • Python抽象基类的定义与使用方法
      目录1、定义抽象基类的子类2、标准库中的抽象基类3、定义抽象基类4、再看白鹅类型前言: 我们写Python基本不需要自己创建抽象基类,而是通过鸭子类型来解决大部分问题。《流畅的Pyt...
      99+
      2022-11-12
    • Spring Bean的定义概念和使用方法是什么
      本篇内容介绍了“Spring Bean的定义概念和使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义Spring b...
      99+
      2023-07-06
    • python中函数的定义方法是什么
      在Python中,函数的定义方法如下:```pythondef function_name(parameters):# 函数体# 可...
      99+
      2023-09-13
      python
    • 怎么在python中定义类方法
      今天就跟大家聊聊有关怎么在python中定义类方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,P...
      99+
      2023-06-14
    • php类的定义与实例化方法是什么
      本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php类的定义在 PHP 中,可以使用 class 关键字加类名的方式定义一个类,然后用大括号{ }将在类体中定义类的属性和方法包裹起来,类的语法格式如下:[修饰类的关...
      99+
      2017-02-04
      php 类的定义 类的实例化
    • python中的3种定义类方法
      目录1、普通方法2、类方法3、静态方法4、总结python中的3种定义类方法: 普通方法 类方法(@classmethod) 类方法(@classmetho...
      99+
      2022-11-12
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作