目录
一、类与实例
类是一个抽象的概念,用于描述一类对象的共同属性和行为。生活中事物被划分为多个类,比如电子类、食品类、家具类……
在编程世界中也有许多类(class)如:整数(int)、浮点 数(float)、字符串(str)等等,可以通过type()函数验证
print(type('1')) # '1'属于字符串类'str'
print(type(1)) # 1属于整数类'int'
print(type([1])) # [1]属于列表类'list'
运行结果:

因此,类似于1,2,3属于整数类,整数类中包含了许多个例,像1、2、3这样的个例被称之为“实例”
人类的实例有:张三、李四、王五;电脑类的实例有:张三的电脑、李四的电脑、王五的电脑;食品类的实例有:辣子鸡、红烧五花肉、糖醋排骨。
注意:人类——类,日本人——类,宫崎骏——实例
类和实例的关系类似于:群体和个体。群体里的每个个体都有着相同/相似的特征和行为。
二、对象
此处的对象指的是面向对象编程中的对象(object)
Python中的对象等于类和实例的集合:即类可以看作是对象,实例也可以看作是对象,比如列表list是个类对象,
[1,2]是个实例对象,它们都是对象。
三、类的创建与调用
1、类的创建
类与类之间的差别可以分为两种:
1、描述事物是怎样的,有什么特征,比如中国人有黑眼睛和黄皮肤。
2、描述事物能做什么,有哪些行为和作用,比如中国人能用筷子吃饭、会讲汉语。
在python中第一种共同点被称为属性,第二种称为方法。
举个例子,创建一个电脑类:
class Computer: # 类的创建:class + 类名 + 冒号
screen = True # 类的属性创建:通过赋值语句,
def start(self): # 方法创建: def + 方法名(self)
print('电脑正在开机中……') #方法具体的实现过程
从例子可见,类的创建: class + 类名 + 冒号 (类名的首字母大写,表示这是个类)
类的属性的创建:赋值语句
screen是Computer()类中的属性,每一个Computer()类都有屏幕,则属性screen = True
方法的创建:def + 方法名(self):
方法中的执行过程定义的是“可以做什么”
【练习】创建一个“中国人“的类,并创建一个属性和方法
# 类名首字母大写
class Chinese:
# 用赋值语句,创建类的属性
eye = 'black'
# 创建实例方法时,不要漏了 self
def eat(self):
print('吃饭,选择用筷子。')
2、类的调用
以”电脑类“为例
class Computer:
screen = True
def start(self):
print('电脑正在开机中……')
my_computer = Computer() # 类的实例化
print(my_computer.screen)
my_computer.start()
结果为:

my_computer = Computer() 这个过程叫作:类的实例化,即在某个类下创建一个实例对象。
调用的语法是 实例名.属性 和 实例名.方法
倒数第二行:my_computer.screen 先是获取到类属性screen对应的值True,再用print()打印出来。最后一行:my_computer.start() 调用方法start(),这个方法的功能是直接打印出'电脑正在开机中……'。
再来一个例子
class Chinese:
eyes = 'black'
def eat(self):
print('吃饭用筷子')
wang= Chinese()
print(wang.eyes)
wang.eat()
运行结果为:

【总结】以上分为三个步骤:创建一个类——类的实例化——用实例调用类的属性和方法
类的创建: class语句类的属性创建:赋值语句
实例方法的创建: def method1 (self):
类的实例化: 实例名=类名()
调用类的属性: 实例名.属性调用类的方法: 实例名.方法()
四、类的两个关键点
1、特殊参数:self
假如有以下这个代码:
class Chinese: name = '张三' # 类属性name def say(self, someone): # 带有两个参数的方法 print(someone + '是中国人') person = Chinese() print(person.name) person.say('张三') # self调用时要忽略,'吴枫'传给参数someone运行结果如下:
想要达到相同的效果,只要在 say()方法 内部调用 类属性 ' 张三 ' 就行。
如果想在 Chinese类 中的 say()方法 中调用 name属性 ,如果直接写成”print(name + '是中国人')“ 运行结果一定出错。
class Chinese: name = '张三' # 类属性name def say(self): print(name + '是中国人') # 打印出'张三是中国人' person = Chinese() person.say()想在类的内部调用类属性,而实例又还没创建之前,我们就需要有个变量先代替实例接收数据,这个变量就是参数self。
因此,将 say()方法 中的 name属性 前面加上 ” self. “ 即可
class Chinese: name = '张三' # 类属性name def say(self): print(self.name + '是中国人') person = Chinese() # 创建Chinese的实例person person.say() # 调用实例方法self会接收实例化过程中传入的数据,当实例对象创建后,实例便会代替 self,在代码中运行。
综上:当在类的方法内部想调用类属性或其他方法时,就要采用 self.属性名 或 self.方法名的格式
2、特殊方法:初始化方法
当实例创建完成后,初始化方法会自动执行。
例如:
class Chinese: def __init__(self): print('hello!') person = Chinese()运行结果为:
或者
class Chinese: def __init__(self,hometown): self.hometown = hometown print('你在哪里出生') def born(self): print('我出生在%s。' % self.hometown) wufeng = Chinese('北京') wufeng.born()运行结果为:
本文详细介绍了Python中的类与实例概念,包括类的创建、调用,以及特殊参数self的作用。重点讲解了类的两个关键点:特殊方法__init__的初始化作用和如何在类的方法中使用self访问属性。

437

被折叠的 条评论
为什么被折叠?



