广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中类怎么定义
  • 471
分享到

python中类怎么定义

2023-06-25 13:06:32 471人浏览 安东尼

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

摘要

这篇文章主要介绍了python中类怎么定义,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类的定义# class是定义类的关键字,ClassName为类的名称clas

这篇文章主要介绍了python中类怎么定义,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

类的定义

# class是定义类的关键字,ClassName为类的名称class ClassName:# 在这里写其他内容passclass ClassName(object):# 在这里写其他内容pass

这是一个最简单的类定义,在python3后类定义一般都会继承object类,不过不继承也没有多大的问题。

类对象

类对象也称实例

# 这就是创建了一个类对象(实例),a是一个实例也是一个对象a = ClassName()

变量

类内部里面有:类变量,局部变量,实例变量

类变量

类变量:所有类的实例化对象都同时共享类变量,也就是说,类变量在所有实例化对象中是作为公用资源存在的。

class ClassName(object):# 定义一个类变量name = "Tom"

类方法的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化(对象)调用。可以通过类名修改类变量的值,并且修改后,会影响所有的实例化的对象。

# 直接通过类名调用print(ClassName.name)# 创建类的实例(对象)a = ClassName()b = ClassName()// 通过类的实例调用print(a.name)print(b.name)ClassName.name = "Tim"print(a.name)print(b.name)

运行结果为:

Tom
Tom
Tom
Tim
Tim

但如果实例的类变量的值修改后,在通过类名修改变量的值,不会影响这个实例的类变量。

a = ClassName()b = ClassName()a.name = "asf"ClassName.name = "Pig"print(a.name)print(b.name)ClassName.name = "aaa"print(a.name)print(b.name)

运行结果:

asf
Pig
asf
aaa

通过运行结果可知,在对象a改变name值后,再调用Class Name.name = "Pig"对象a的name变量值没有改变

局部变量

局部变量:局部变量只定义在类方法内,也只能在方法内使用

class ClassName(object):# 这是一个方法def function(self):# 这是一个局部变量name = "Tom"

name定义在类方法内,所以是局部变量,在外部是无法调用,只能在方法内使用。

实例变量

实例变量:以self.变量名的方式定义的变量,称为实例变量(属性)

class ClassName(object):# 这是一个实例变量def function1(self):self.name = "Tom"def function2(self):print(self.name)

只作用于调用方法的对象,可以在其他方法内调用。

className = ClassName()className.function()

运行结果:

Tom

如果定义在__init__()方法中的实例变量,可以同过只能通过对象名访问。

class ClassName(object):def __init__():self.name = "Tom"className = ClassName()print(className.name)

运行结果:

Tom

私有变量

__name这就是私有变量,在变量前面加两个_self.__name也是私用变量,私有变量在类外部无法直接进行访问。

class ClassName(object):# 定义了一个私有类变量__name = "Tom"    ClassName.__name

运行结果:

---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<iPython-input-8-08830fea0534> in <module>
2 __name = "Tom"
3
----> 4 ClassName.__name

AttributeError: type object 'ClassName' has no attribute '__name'
 

类的方法

在类里面用def关键字来定义方法,也叫函数。与普通方法的区别是,必须需要一个self的参数,self代表类自身

class ClassName(object):def function(self,a):pass

def为定义函数的关键字,function为函数的名称,

特殊方法

__init__()用来初始化类的参数一般叫构造方法
这个方法,我们一般类都会用到。

class ClassName(object):def __init__(self):self.name = "aaa"

当类实例化时,会自动调用__init__

__call__()将对象当做函数时调用。

class ClassName(object):def __init__(self):self.name = "aaa"def __call__(self):print("aaa")c = ClassName() // 类实例化,执行了__init__()方法c() //执行了__call__()方法

__get__()类作为另一个类的属性时自动调用

class ClassName:def __init__(self):passdef __get__(self,instance, owner):print("__get__调用了")class ClassName2:a = ClassName()

运行结果:__get__调用了

__new__() 是一种负责创建类实例的静态方法,且该方法会优先 __init__() 初始化方法被调用。

。。。还有很多其他的类特殊方法

继承

继承在生活中是获得父辈的财产,在编程语言中是获得父类的所有变量,方法。通过继承从类上衍生出新的类

单继承

简而言之,是继承一个类,所继承的类为基类(父类),继承者为子类

# 父类class A:pass# 子类,继承了A类class B(A):pass

上面是个简单的继承,子类在类名后面的括号内写要继承的类的名称。

# 父类class A:name = "Tom"def getName(self):print("..")# 子类,继承了A类class B(A):passb = B()print(b.name)b.getName()

运行结果:

Tom
..

发现B类没有写什么变量和方法,却调用了A类的变量(属性)和方法
当然如果不想要父类的某个变量或方法,可以重写这个变量或方法

# 父类class A:name = "Tom"def getName(self):print("..")# 子类,继承了A类class B(A):def getName(self):print("bbb")b = B()print(b.name)b.getName()

运行结果:

Tom
bbb

多继承

多继承从名称上来看,是继承了多个类

class A:passclass B:passclass C(A, B):pass

上面这个C类同时继承了A类,B类

感谢你能够认真阅读完这篇文章,希望小编分享的“python中类怎么定义”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网Python频道,更多相关知识等着你来学习!

--结束END--

本文标题: python中类怎么定义

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

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

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

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

下载Word文档
猜你喜欢
  • python中类怎么定义
    这篇文章主要介绍了python中类怎么定义,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类的定义# class是定义类的关键字,ClassName为类的名称clas...
    99+
    2023-06-25
  • python中类怎么定义与封装
    在Python中,可以使用class关键字来定义一个类。类的定义包括类名、类的属性和方法。类的封装是指将类的属性和方法封装起来,只允...
    99+
    2023-10-19
    python
  • 怎么在Python中自定义元类
    这期内容当中小编将会给大家带来有关怎么在Python中自定义元类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、lon...
    99+
    2023-06-14
  • 怎么在python中定义类方法
    今天就跟大家聊聊有关怎么在python中定义类方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,P...
    99+
    2023-06-14
  • python类方法怎么定义
    本篇内容介绍了“python类方法怎么定义”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义类方法的定义需要借助于装饰器。在定义类方法时,需...
    99+
    2023-06-30
  • Python 中怎么自定义基本类型
    本篇文章为大家展示了Python 中怎么自定义基本类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们也知道,在 Python 里面,一切都是对象,而对象一般有方法。所以,大家会看到下面这种写法:...
    99+
    2023-06-16
  • python中的类怎么定义与封装
    在Python中,可以使用关键字`class`来定义一个类。类是一种抽象的数据类型,可用于封装数据和方法。下面是一个简单的类的定义与...
    99+
    2023-10-11
    python
  • 怎么在python中自定义异常类
    这篇文章将为大家详细讲解有关怎么在python中自定义异常类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对...
    99+
    2023-06-14
  • 怎么在python中定义类的继承
    怎么在python中定义类的继承?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pytho...
    99+
    2023-06-14
  • 怎么在python中使用namedtuple定义类
    这篇文章给大家介绍怎么在python中使用namedtuple定义类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言...
    99+
    2023-06-14
  • python类的继承怎么定义
    这篇文章主要介绍“python类的继承怎么定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python类的继承怎么定义”文章能帮助大家解决问题。说明基于一个现有的类来获得它所有的能力,并以此来扩展...
    99+
    2023-06-30
  • python怎么定义类和对象
    这篇“python怎么定义类和对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么定义类和对象”文章吧。定义简...
    99+
    2023-06-29
  • php中怎么定义类
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php类的定义方法在 PHP 中,可以使用 class 关键字加类名的方式定义一个类,然后用大括号{}将在类体中定义类的属性和方法包裹起来,类的语法格式如下:[修饰类的...
    99+
    2015-12-08
    php 定义类
  • VB.NET中怎么定义类
    VB.NET中怎么定义类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一个类要实现某个接口,实现接口的语句不能跟VB.NET类定义同行Public Class&n...
    99+
    2023-06-17
  • python怎么定义索引模块类
    这篇文章主要介绍了python怎么定义索引模块类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专...
    99+
    2023-06-14
  • python数据模块类怎么定义
    这篇文章给大家分享的是有关python数据模块类怎么定义的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应...
    99+
    2023-06-14
  • python怎么定义int类型数组
    在Python中,可以使用列表(list)来表示数组,其中每个元素都可以是整数类型(int)。以下是定义整数类型数组的方法:1. 使...
    99+
    2023-09-04
    python
  • Python怎么自定义类继承threading.Thread
    这篇文章主要介绍了Python怎么自定义类继承threading.Thread,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python的五大特点是什么python的五大特点...
    99+
    2023-06-14
  • C++中怎么自定义类
    这篇文章将为大家详细讲解有关C++中怎么自定义类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。/////////////TestClass.h/////////////////// &nbs...
    99+
    2023-06-17
  • 怎么在python中定义数值类型变量
    怎么在python中定义数值类型变量?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作