python 什么是类学习笔记

类与对象

类的定义

在这里插入图片描述
①、类:各个种类,如电子类、家具类、服饰类、食品类……;
②、实例:类的个例就叫做实例 (instance),可理解为“实际的例子”。

类的创建和调用

在这里插入图片描述

类的创建

①、类的创建:class+类名+冒号
自动检测
class leiming():
pass #这里记得缩进
②、类的属性创建:通过赋值语句
自动检测
#下面的 a 是变量
a=1
#下面的 a 是类 A() 的属性

clas A():
a=1

③、实例方法的创建:def + 方法名(self)(重点:self 代表着实例化对象)
自动检测
#下面的 B() 是函数
def B():
pass
#下面的 B() 是类 A() 的方法 B()

class A():
def B(self):
pass

类的调用【】

如下例子:

class teacher():
name=‘延君’
def work(self):
print(‘learning ~~~’)
t=teacher()
print(t.name)
t.work()

①、第 5 行 “t=teacher()” 指实例化类 teacher ,其中 t 为实例化对象(即 self = t );
②、第 6 行 “print(t.name)” 指调用了实例化对象的属性 name;
③、第 7 行 “t.work()” 指调用了实例化对象的方法 work。

类创建的关键点

self(代表着实例化对象本身)

self 是所有实例的替身(这是替身攻击!!!)
①、类的方法内部调用其他方法时,我们也需要用到 self 来代表实例

class A():
def B(self):
print(self)
a=A()
a.B()

上面代码执行后,终端输出的结果为 <main.A object at 0x000001B29C851080> ,即我们的 self 代表着类 A 的实例化对象 a。
②、类中用 def 创建方法时,就必须把第一个参数位置留给 self,并在调用方法时忽略它(不用给self传参)
③、类的方法内部想调用类属性或其他方法时,就要采用 self.属性名 或 self.方法名 的格式

class A():
name=‘延君’
def B(self):
print(‘助教的名字是’+self.name)
a=A()
a.B()

初始化方法

①、格式定义:def init(self),是由 init 加左右两边的【双】下划线组成
②、作用:当每个实例对象创建时,该方法内的代码无须调用就会自动运行

class A():
def init(self):
print(‘我是最帅的助教,没有之一’)
a=A()

以上初始化函数无需调用,一实例化直接运行。
③、利用这个特性,在编写习惯上,我们会在初始化方法内部完成类属性的创建,为类属性设置初始值,这样类中的其他方法就能直接、随时调用

类的关键知识点

self 函数的调用

class A():
def Name(self):
print(‘我是最帅的助教{},没有之一’.format(self.name))
def Work(self):
print(‘最爱催课’)
a=A()
a.name=‘延君’
a.Name()
a.Work()

以上代码中,从第 6 行开始讲解,我们实例化了类 A 并创建实例对象 a ,给实例化对象 a 创建了属性 name 并赋值 ‘延君’。我们调用类中的 Name 方法后,便打印出了我么的语句。

初始化方法 init 函数

class A():
def init(self,name):
self.name=name
def Day(self):
print(‘今天是{}催课的第三天了’.format(self.name))
a=A(‘延君’)
a.Day()

以上代码中,我们实例化了类 A 并赋予了值 ‘延君’,因为实例化了,所以初始化函数 init 默认执行,并把 ‘延君’ 给实例化对象 a 的属性 name,从而我们调用方法 Day 时正常输出 “今天是延君催课的第三天了” 。
这里 self.name=name 要注意的是,self.name 是实例化对象的 name,而后者是函数中的参数 name ,两者定位不同。即我们可以写为 self.mingzi = name,则我们调用时也需要写为 self.mingzi。

__str__函数(知识拓展)

class A():
def init(self,name):
self.name=name
def str(self):
return ‘我是{}’.format(self.name)
a=A(‘延君’)
print(a)

在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法,其中 __str__方法需要返回一个字符串,当做这个对象的描写,也是实例化后便执行的方法。

猜你喜欢

转载自blog.csdn.net/qq_44992918/article/details/109341691