iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python类属性和方法如何调用
  • 149
分享到

Python类属性和方法如何调用

2023-07-02 13:07:39 149人浏览 薄情痞子

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

摘要

这篇“python类属性和方法如何调用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python类属性和方法如何调用”文章吧

这篇“python类属性和方法如何调用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python类属性和方法如何调用”文章吧。

一、类、对象概述

面向对象程序设计中,把数据以及对数据的操作封装在一起,组成一个整体(对象),不同对象之间通过消息机制来通信或者同步。对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类。

类的抽象具体包括两个方面:

数据抽象:描述某类对象共有的属性或状态。

过程抽象:描述某类对象共有的行为或功能操作。

在python中,使用类来定义同一种类型的对象。类是广义的数据类型,能够定义复杂数据的特性,包括:

静态特性(即数据抽象):创建类时用变量形式表示对象特征的成员称为属性(数据成员)。

动态特性(即行为抽象,也就是对数据的操作方法):用函数形式表示对象行为的成员称为成员方法,数据成员和成员方法统称为类的成员。

类是实现代码复用和设计复用的一个重要方法,封装、继承、多态是面向对象程序设计的三个要素。

类是生成对象的抽象模板,对象是根据类创建出来的一个个具体的实例。

二、类的定义与使用

Python使用class关键字来定义类,class关键字之后是一个空格,接下来是类的名字,如果派生自其它基类的话则需要把所有父类放到一对圆括号中并使用逗号分隔,然后是一个冒号,最后换行并定义类的内部实现。

类名的首字母一般要大写。

class Car(object):              #定义一个类,派生自object类(所有类的祖先,定义类时不存在其他父类就写object)can_move=True               #定义类属性    def infor(self):            #定义成员方法        print("This is a car")

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self(self代表类的实例,而非类;self 不是 python 关键字,我们把他换成其他也是可以正常执行的)。

三、类属性和类方法的调用

定义了类之后,就可以用来实例化对象,并通过“对象名.成员”的方式来访问其中的数据成员或成员方法。

>>>spring=Bird()                        #实例化对象>>>print(Bird.have_feather)             #通过类名调用属性>>>print(Bird.have_head)                #通过对象名调用属性>>>spring.move()                        #通过对象名调用方法>

Python类属性和方法如何调用

Python类属性和方法如何调用

类方法大体分为 3 类,分别是类方法、实例方法和静态方法,其中实例方法用的是最多的。我们知道,实例方法的调用方式其实有 2种,既可以采用类对象调用,也可以直接通过类名调用。

通常情况下,我们习惯使用类对象调用类中的实例方法。但如果想用类调用实例方法,不能像如下这样:

class Study:    def info(self):        print("学 Python")#通过类名直接调用实例方法Study.info()

运行上面代码,程序会报出如下错误:

Traceback (most recent call last):
  File "D:\python3.6\demo.py", line 5, in <module>
    Study.info()
TypeError: info() missing 1 required positional argument: 'self'

其中,最后一行报错信息提示我们,调用 info() 类方式时缺少给 self 参数传参。这意味着,和使用类对象调用实例方法不同,通过类名直接调用实例方法时,Python 并不会自动给 self 参数传值。

读者想想也应该明白,self 参数需要的是方法的实际调用者(是类对象),而这里只提供了类名,当然无法自动传值。

因此,如果想通过类名直接调用实例方法,就必须手动为 self 参数传值。例如修改上面的代码为:

class Study:    def info(self):        print("学 Python")clang = Study()#通过类名直接调用实例方法Study.info(clang)

再次运行程序,结果为:

学 Python

可以看到,通过手动将 clang 这个类对象传给了 self 参数,使得程序得以正确执行。实际上,这里调用实例方法的形式完全是等价于 clang.info()。

值得一提的是,上面的报错信息只是让我们手动为 self 参数传值,但并没有规定必须传一个该类的对象,其实完全可以任意传入一个参数,例如:

class Study:    def info(self):        print(self,"学 Python")#通过类名直接调用实例方法Study.info("zhangsan")

运行结果为:

zhangsan 学 Python

可以看到,“zhangsan” 这个字符串传给了 info() 方法的 self 参数。显然,无论是 info() 方法中使用 self 参数调用其它类方法,还是使用 self 参数定义新的实例变量,胡乱的给 self 参数传参都将会导致程序运行崩溃。

总的来说,Python 中允许使用类名直接调用实例方法,但必须手动为该方法的第一个 self 参数传递参数,这种调用方法的方式被称为“非绑定方法”。

用类的实例对象访问类成员的方式称为绑定方法,而用类名调用类成员的方式称为非绑定方法。

四、私有成员与公有成员

  • 私有成员在类的外部不能直接访问,一般是在类的内部进行访问和操作,或者在类的外部通过调用对象的公有成员方法来访问,而公有成员是可以公开使用的,既可以在类的内部进行访问,也可以在外部程序中使用。

  • 从形式上看,在定义类的成员时,如果成员名以两个下划线开头但是不以两个下划线结束则表示是私有成员,否则就不是私有成员。

  • Python并没有对私有成员提供严格的访问保护机制,通过一种特殊方式“对象名._类名__xxx”也可以在外部程序中访问私有成员,但这会破坏类的封装性,不建议这样做。

在Python中,以下划线开头的变量名和方法名有特殊的含义,尤其是在类的定义中。

_xxx:受保护成员;
__xxx__:系统定义的特殊成员;
__xxx:私有成员,只有类对象自己能访问,子类对象不能直接访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。

注意:Python中不存在严格意义上的私有成员。

以上就是关于“Python类属性和方法如何调用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: Python类属性和方法如何调用

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

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

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

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

下载Word文档
猜你喜欢
  • Python类属性和方法如何调用
    这篇“Python类属性和方法如何调用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python类属性和方法如何调用”文章吧...
    99+
    2023-07-02
  • python--类属性的调用方法
    测试时候类的调用是经常会用到的。简单看下类的调用使用的方法吧。 来看例子:目录结构: 我们现在要在do_class.py这个文件里调用class_learn.py里的类 代码(do_class.py): #!/usr/bin/env pyt...
    99+
    2023-01-31
    方法 类属 python
  • 类属性和类方法
    一、 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法__init__为 对象初始化 ...
    99+
    2023-01-31
    方法 类属
  • python—类的属性和方法总结
    一、类的属性总结(类的属性定义在方法外,对象的属性定义在方法内)理解:类的(静态)属性:(人类的五官,理解为变量)类的(动态)方法:(人类吃穿住行,理解为一个函数,至少带一个参数self,指向类本身)对象:类的实例化,之后才能有属性和方法1...
    99+
    2023-01-31
    属性 方法 python
  • python类的属性和方法怎么使用
    在Python中,类的属性和方法可以通过类的实例进行访问和调用。类的属性可以在类的定义中进行声明,并在实例化后通过实例进行访问。例如...
    99+
    2023-10-10
    python
  • 一篇文章彻底搞懂Python类属性和方法的调用
    目录一、类、对象概述二、类的定义与使用三、类属性和类方法的调用四、私有成员与公有成员总结Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象...
    99+
    2024-04-02
  • python类之特殊属性和魔术方法
    1 总述 属性 含义 _name_ 类,函数,方法等的名字 _module_ 类定义所现在的模块名 _class_ 对象或类所属的类 _bases_ 类的基类的元素,顺序为他们在基类列表中出现的顺序 _doc...
    99+
    2023-01-31
    魔术 属性 方法
  • python类属性和实例属性
        python中的类属性只是存储与类相关的数据,和该类的实例无关。类属性和java中的静态成员变量类似。访问python的类属性可使用类名+“.”+属性名的方式,如果类的实例没有同名变量也可以使用实例来访问。如果实例含有与类属性同名的...
    99+
    2023-01-31
    实例 属性 类属
  • python中类中属性和方法怎么定义使用
    今天小编给大家分享一下python中类中属性和方法怎么定义使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • Python中静态方法,类方法,属性方法使用方法
    目录1.静态方法2.类方法3.静态方法与类方法总结4.属性方法1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普...
    99+
    2024-04-02
  • python实现打印类的所有属性和方法
    目录打印类的所有属性和方法python中更多种类的打印1.print("." * 10) 是输出10个 "." 2.用了一个自定义的...
    99+
    2024-04-02
  • Python中静态方法,类方法,属性方法怎么使用
    本篇内容介绍了“Python中静态方法,类方法,属性方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.静态方法通过@static...
    99+
    2023-06-30
  • Python中类的属性、方法及内置方法
    成员变量 对象的创建 创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法, 句柄用于区分不同的对象, 对象的属性和方法,与类中的成员变量和成员函数对应, obj = MyClass()创建类的一个实例,扩...
    99+
    2023-01-31
    方法 属性 Python
  • 如何在python中使用私有属性和私有方法
    本篇文章给大家分享的是有关如何在python中使用私有属性和私有方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、...
    99+
    2023-06-14
  • python基础之类属性和实例属性
    属性:类属性和实例属性 类属性:就是类对象所有的属性 小结 '类属性 是可以 被 类对象和实例对象共同访问的 实例属性只能由实例对象访问 class Student: ...
    99+
    2024-04-02
  • python如何调用其他类中的方法
    要调用其他类中的方法,需要先创建该类的实例对象,然后通过实例对象调用相应的方法。以下是一种示例代码: class MyClass: ...
    99+
    2024-02-29
    python
  • java如何调用类方法
    要调用类方法,可以使用类名直接调用方法,而不需要创建类的实例对象。例如,假设有一个类名为MathUtils,其中有一个静态方法add...
    99+
    2023-08-18
    java
  • Python如何获取模块中类以及类的属性方法信息
    目录一、sys.modules模块二、inspect模块三、python获取模块中所有类的实例总结一、sys.modules模块 sys.modules是一个全局字典,python启...
    99+
    2024-04-02
  • Python内置方法和属性详解
    目录1.1 _del_方法(知道)1.2 _str_ 方法总结 1.1 _del_方法(知道) 在Python中 当使用 类名()创建对象时,为对象 分配完空间后,自动 调用 _i...
    99+
    2024-04-02
  • Python 动态绑定属性和方法
    Python是动态语言,在创建对象后,可以动态地绑定属性和方法 定义类: class Student:  #定义类     #在__init__初始化方法中定义的属性是Student...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作