python系列八 python类

相关概念

面向对象编程是最有效的软件编写方法之一。
在python中创建一个类和对象是很容易的。
根据类来创建对象被称为实例化。

而,什么是类,什么是对象?
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例
对象:类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法

创建和使用类

我们创建一个Student类

1.class Student():

2.  def __init__(self , name , score):
3.      self.name = name 
4.      self.score = score ;

5.  def printf_stu_info(self):
6.      print(self.name + " score is " +str(self.score))


7.stu1 = Student("yang" , 80) 
8.stu1.printf_stu_info()
输出:yang score is 80
9.print(stu1.name)
输出:yang

说明
根据约定,在Python中,首字母大写的名称指的是类
方法 _ init_()
方法 __ init__(),类中的函数称为方法,与我们前面介绍的函数同样的概念
在2处的方法 __ init__()是一个特殊方法,每当根据类Student实例化时,Python都会自动运行它,相当于别的面向对象语言中的构造函数
* _ init_()函数,开头和末尾各两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突*
* _ init_()定了三参数,self、name、score,注意的是self必不可少,还必须位于其他形参的前面*
每个与类相关联的方法调用都自动传递参数self,它是一个指向实例本身的引用,让我们能够访问类中的属性和方法
当创建Student实例时,只需要给name、score这两个形参提供值

成员变量

3.4处定义的两个变量都有前缀self。
以self为前缀的变量,都可供类中的所有方法使用,也可以通过类的任何实例来访问这些变量,如9处
self.name=name来获取存储在形参name中的值,并将存储到变量name中,然后该变量被关联到当前创建的类实例中
可以定义类的变量,相当于C/C++语言的static变量,不加self,在类中定义一个变量就行,如:

class Student():
    grade="三年级"
    def __init__(self , name , score):
        self.name = name 
        self.score = score ;
普通方法printf_stu_info(self)

跟以前介绍的函数没啥区别,就是多了个参数self

类的实例化

在第7处,我们创建了一个名为”yang”的Student。Python执行这句话时,会自动调用 __ init__()方法,并把name,score属性赋相对来的形参name、score值

方法调用

在第8处为对象调用类中的方法

访问属性

在第9处为对象调用类中的属性,也可以修改类中的属性

Python析构函数

析构函数 del ,del在对象销毁的时候被调用,当对象不再被使用时,del方法运行

class Student():
    '所有学生的基类'
    grade="三年级"
    def __init__(self , name , score):
        self.name = name 
        self.score = score ;
        self.num="1111"

    def printf_stu_info(self):
        print(self.name + " score is " +str(self.score))

    def __del__(self):
        print("go 了")

stu1 = Student("yang",30)
输出:go 了

面向对象重要的是抽象,封装,所以定义一个好的类很重要。

此博客首先在本人公众号(ACodeLife发布),如有错误,多多指教

猜你喜欢

转载自blog.csdn.net/wo_Niu123/article/details/81952735