python小知识-class类和object对象

原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.csdn.net/weixin_42555080
本次代码的环境:
运行平台: Windows
Python版本: Python3.x
IDE: PyCharm

一.概述

Java面向对象程序设计中,已经见识过面向对象程序设计的三个基本特性:封装性(Encapsulation)、继承性(Inheritance)、多态性(Polymorphism)。Python完全采用了面向对象程序设计的思想,完全支持面向对象的基本功能,如封装、继承、多态以及对基类方法的覆盖或重写。但与其他面向对象程序设计语言不同的是,Python中对象的概念很广泛,Python中的一切内容都可以称为对象。例如,字符串、列表、字典、元组等内置数据类型都具有和类完全相似的语法和用法。


在这里插入图片描述

二.定义类、实例化对象

2.1.定义类

数据成M成属性(成员变量) ,用南数形式我
创建类时用变量形式表示的对象属性称为数据成员或属性(成员变量,用函数形式表示的对象行为称为成员函数(成员方法),成员属性和成员方法统称为类的成员。

类定义的最简单形式如下:
class类名:
属性(成员变量)
属性

下面通过简单的举例,展示如何定义一个类:

#定义一个Person人员类。

class Person:
   i=1    #成员变量(属性)
   def HelloWorld(self):
   print("Hello World!") ;#成员函数

上面这个例子是,在Person类中定义一个成员函数HelloWorld()用于输出字符串"Hello World!".同样,Python使用缩进标识类的定义代码,

(1)成员函数(成员方法)

在Python中函数和成员方法(成员函数)是有区别的。成员方法般指与特定实例绑定的函数,通过对象调用成员方法时,对象本身将被作为第一个参数传递过去,普通函数并不具备这个特点。

(2) self

可以看到,在成员函数HelloWorld()中有一个参数self.这也是类的成员函数(方法)与普通函数的主要区别。类的成员函数必须有一个参数self,而且位于参数列表的开头。self就代表类的实例(对象)自身,可以使用sef引用类的属性和成员函数。在类的成员函数中访问实例属性时需要以self 为前缀,但在外部通过对象名调用对象成员的数时并不需要传递这个参数,如果在外部通过类名调用对象成员函数则需要显式为self 会数传值。

2.2 对象定义

这个内容和Java学的内容是一样的,都是通过实例对象,然后通过对象名.成员的方式访问其中的数据成员和成员方法。

三.构造函数

类可以定义一个特殊的叫做 init ()的 方法(构造函数,以两个下划线“”开头和结束)。一个类定义 init ()方法后, 类实例化时就会自动为新生成的类实例调用__init ()方法。构造函数一般用于完成对象数据成员设置初值进行其他必要的初始化工作。如果用户未涉及构造函数,Python将提供一个默认的构造函数。
如下例子是定义一个Student构造函数完成对象变量初始化工作。

class Student:
   def __init__ (self, age, sex):
       self.a = age
       self.s = sex

s = Student(18, '男')
print(s.a,s.s)
>>>结果:18,

四.析构函数

Python中类的析构函数是__del__() ,用来释放对象占用的资源,在Python收回对象空间之前自动执行。如果用户未涉及析构函数,Python将提供一个默认的析构函数进行必要的清理工作。
例如:

class Student:
   def __init__ (self, age, sex):
       self.a = age
       self.s = 
   def __del__(self):
       print('Student不存在了')

s = Student(18, '男')
print(s.a,s.s)
del s
>>>结果:18,男 Student不存在了

五.实例属性和类属性

属性(成员变量)有两种: 一种是实例属性,另一种是类属性(类变量)实例属性是在构造函数_init_ (以两个下划线“”开头 和结束)定义的,定义时以self作为前缀;类属性是在类中方法之外定义的属性。在主程序中(在类的外部),实例属性属于实例(对象),只能通过对象名访问;类属性属于类可通过类名访问,也可以通过对象名访问,为类的所有实例共享。类属性可以在该类中的所有实例之间共享,可以在类的内部或者外部使用“类名.属性名”的方式调用。
具体使用可见下图1所示,结果如图2所示:
 

在这里插入图片描述
图1
 

在这里插入图片描述
图2

5.总结

这篇文章的主要内容讲解了Python基础内容——面向对象程序设计,并给出了其中定义和使用类、构造函数、析构函数、实例属性和类属性,属于基础记忆性的内容。这篇内容写到这了,同时也希望大佬们批评指正,因为是新手难免会有说的不恰当甚至错误的内容,还请大佬们不要手下留情。
 

  在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值