与Java、PHP等多数语言一样,Python也是一门面向对象的语言,在Python中同样很容易的创建一个类和对象。本文不介绍面向对象的概念,只介绍Python的面向对象编程。

在面向对象编程编程中,落地的方式一般是使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。类就是一个模板,模板里可以包含多个函数,函数里实现一些功能。而对象则是根据模板创建的实例,通过实例对象可以执行类中的函数。

一、Python类定义

在Python中,类的语法格式如下:class ClassName:

.

.

.

类的定义和其他语言一样,都是使用 class 关键字加类名(ClassName)来定义类。类名称第一个字母大写,名称后面可以带括号也可以不带括号。

1.1 类定义说明:class:定义类的关键字

ClassName:类名字。

statement:类属性(方法、变量等)。

举例如下:>>> class Person:

'''这是一个Peson类'''

name = 'neil'

def getName(self):

return self.name

def setName(self,name):

self.name = name

1.2 类的方法

在前面的文章中,我们介绍过Python的函数(方法)。在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。(注意:self 不是 python 关键字,我们把他换成其他名称也是可以,不过按照习惯使用 self)>>> class Person:

def say(self):

print('hi')

>>> p = Person()

>>> p.say()

hi

>>>

如果定义类的方法时不指定self参数,调用方法时,将会抛错“TypeError: funName() takes 0 positional arguments but 1 was given”。

1.3 类的构造函数

Python类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用。>>> class Person:

def __init__(self):

print('类初始化自动调用构造函数')

>>> p = Person()

类初始化自动调用构造函数

>>>

当然, __init__() 构造函数也可以有参数,参数通过 __init__() 传递到类的实例化操作上。>>> class Person:

def __init__(self,name):

print('类初始化自动调用构造函数')

self.name = name

>>> p = Person('neil') # 初始化时需要传参,不然报错

类初始化自动调用构造函数

>>> p.name

'neil'

>>>

1.4 类的属性

类对象创建后,类命名空间中所有的命名都是有效的属性名。类实例化后,可以使用其属性;实际上,创建一个类之后,也可以通过类名访问其属性。>>> class Person:

name = 'neil'

def getName(self):

return self.name

def setName(self,name):

self.name = name

>>> p = Person() # 实例化类

>>> p.setName('james')

>>> p.getName()

'james'

>>> Person.name # 通过类名访问属性,不受实例对象的影响

'neil'

>>>

通过以上代码可以发现,实例化类对象后,每个对象有自己单独的属性值。而通过类名访问的属性值,其值为定义时的初始值,不受实例化对象的影响。

二、类对象(实例化)

在前面的例子中可以看到,Python类对象的实例化,不需要使用关键字new(Python中也没有这个关键字),类的实例化类似函数调用方式。此处不再多说,举例说明:>>> class Person():

def __init__(self,name):

self.name = name

>>> p = Person()

Traceback (most recent call last):

File "", line 1, in

p = Person()

TypeError: __init__() missing 1 required positional argument: 'name'

>>> p = Person('neil')

>>> p.name

'neil'

>>>

需要注意的一点是,当使用构造函数时,如果构造函数带参数,实例化时,需要传递参数,否则实例化将出错。

class类python_Python 类class简介相关推荐

  1. php 什么是对象,什么是PHP类和类的对象(PHP的类简介)

    什么是PHP类和类的对象(PHP的类简介) 类(Class):是一些变量与一些使用这些变量的函数的集合. 可简单理解为函数和变量的集合,或变量和函数的定义的集合. 语法是: class Class_n ...

  2. Java String类的split方法简介

    Java String类的split方法简介 String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组. 1.一般用法 用一般的字符,例如 @ 或 , 等符号 ...

  3. 飞行类手册国际标准简介

    在业界有这个说法:三流的企业卖产品,二流的企业卖技术,一流的企业卖标准.一流企业是行业的标杆,行业的制定者.现在标准已经成为最重要的行业发展因素,谁的产品标准一旦为世界所认同,谁就会引领整个产业的发展 ...

  4. class传参 python_Python类的概念、定义、属性、继承

    1.面向对象(Object Oriented,OO)概念 面向对象,是我们编程的一种思维. 早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问 ...

  5. [Java] 类和对象(简介,封装,内存机制,构造方法)

    文章目录 1 面向对象思想 1.1面向对象的思想概述 举例 特点 1.2 类和对象 类 对象 类和对象的关系 1.3 类的定义 1.4 对象的创建以及使用 1.5 对象的内存 1.6 类作为参数 注意 ...

  6. UML类图简介及类与类之间的关系

    UML(Unified Modeling Language,统一建模语言)建模是面向对象开发设计方法中的第一步,用UML来表达设计模式不仅方便了开发人员的交流,而且更加清晰.准确.UML定义了5类10 ...

  7. Servlet入门篇(GenericServlet 类 - HttpServlet 类 -ServletConfig 接口 - HttpServletRequest 接口……)

    1.Servlet 简介 Servlet 对请求的处理和响应过程可分为以下几个步骤: (1)客户端发送请求至服务器端: (2)服务器将请求信息发送至 Servlet : (3)Servlet 生成响应 ...

  8. c++ 类和类的定义

    类和类的定义 简介 什么是类 类的定义格式 类的一般定义格式 该类的定义还可以如下 定义类时应注意的事项 简介 在面向对象的程序设计中,有经常接触类.对象等专业名词:到底什么是类.什么是对象呢?在程序 ...

  9. (116)System Verilog类合成(类包含关系)详解

    (116)System Verilog类合成(类包含关系)详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog类合成(类包含关系)详解 ...

最新文章

  1. apache用proxy 实现URL 转发
  2. c语言常用绘图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  3. Bash脚本教程之算数运算
  4. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之程序运行
  5. 数据挖掘算法_技术分享|大数据挖掘算法之KNNk近邻算法
  6. 4轮拿下字节Offer,面试题复盘(含答案)
  7. 记一次被自己DDOS攻击
  8. 为什么机器学习行业的发展离不开 “开源”
  9. 独家专访 | “共同基金之父”纽伯格的公司(NeubergerBerman)要在中国做什么?
  10. DameWare IT专用内网远程控制软件
  11. STM32F103C8T6最小系统
  12. 基于matlab的黑体辐射特性分析,MATLAB 黑体辐射规律的研究
  13. 【axios】get和post请求用法
  14. 「数据架构」数据模型,数据字典,数据库模式 和ERD的比较
  15. 企业邮箱管理员如何管理邮箱
  16. Kudu范围分区、Hash分区、多级分区
  17. 比较两给json是否一致
  18. 魔百盒CM311-1a免拆机卡刷固件加+刷armbian装docker运行青龙面板
  19. 售前和产品经理有何区别?
  20. kubernetes学习:4.安装kubectl命令

热门文章

  1. 宝塔服务器建2个网站,宝塔面板2个不同域名和网站,显示了一个网站的内容
  2. HTTP -- 来由
  3. Java的语法结构和数组
  4. 基于STM32的多点温湿度无线传输检测及控制(基于单片机的蔬菜大棚温湿度智能控制系统)
  5. 剪切音乐的使用方法有哪些
  6. 中望3D2022 检查拔模角度
  7. 电脑奔溃的时候,到底发生了什么?
  8. eclipse编写的Java家庭收支记账软件
  9. 从充电电路问题看笔记本的工作原理及维修
  10. linux彻底卸载软件步骤:以卸载wine为例