【python笔记】 类与对象

本文详细介绍了Python中的类与实例概念,包括类的创建、调用,以及特殊参数self的作用。重点讲解了类的两个关键点:特殊方法__init__的初始化作用和如何在类的方法中使用self访问属性。

目录

一、类与实例

二、对象

三、类的创建与调用

1、类的创建

2、类的调用

四、类的两个关键点

1、特殊参数:self

2、特殊方法:初始化方法 


一、类与实例

类是一个抽象的概念,用于描述一类对象的共同属性和行为。生活中事物被划分为多个类,比如电子类、食品类、家具类……

在编程世界中也有许多类(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()

运行结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神通广大白居易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值