Python蟒蛇书学习笔记——第九章 类

Python蟒蛇书学习笔记——第九章 类

#初稿完成时间:2022/7/3
#作者:XP钉子户

面向对象编程是Python语言特色之一。编写时,可以提前设计好各种通用行为。基于类所创建的对象均拥有此类通用行为,根据类来创建对象称为实例化

​ 下面为本笔记的目录,可以点击目录跳转到对应的部分阅读。

9.1 创建和使用类

​ 创建类的方法:

class Dog:
    def __init__(self,name,age):  
        """初始化函数,每次根据Dog类创建新实例时,Python都会自动运行它。"""
        self.name=name
        self.age=age
    def sit(self):
        print(f"{
     self.name} is now sitting.")
    def roll_over(self):
        print(f"{
     self.name} rolled over!")

​ 注意:此处出现了self。self类似于Java语言内的this,只出现在类里面(换言之,实例化之后就不会出现self)。以self为前缀的变量可供类中的所有方法使用,可以通过任何类的实例来访问。如:

my_dog = Dog('Willie',6)  #实例化一个对象my_dog
print(my_dog.name)
print(my_dog.age)

​ 此时程序的输出为:

willie
6

​ 像这种可以通过实例访问的变量称为属性

9.2 根据类创建实例

9.2.1 类创建实例的方法

​ 根据类创建实例的方法:

class Dog:
    ...
my_dog = Dog('willie',6)  #这里的'willie'为name变量的初始值,6为age变量的初始值

​ 此处通过Dog类创建了一个my_dog实例。这个创建过程中赋予了两个实参,在实例化时,Python会自动执行Dog类里面的初始化函数,并根据这个函数对my_dog的参数进行初始化。

​ Python也支持对同一个类创建多个实例。每个实例都拥有着类别相同的属性。

9.2.2 访问实例的属性和调用实例的方法

​ 下面,我们对于my_dog实例访问属性和调用方法。

print("My dog's name is {}".format(my_dog.name))
print("My dog's age is {}".format(my_dog.age))
my_dog.sit()
my_dog.roll_over()

​ 程序的运行结果如下:

My dog's name is willie
My dog's age is 6
willie is now sitting.
willie rolled over!

9.2.3 给属性指定默认值

​ 可以通过在类的初始化函数中直接赋予self的某个属性默认值。如:

class Dog:
    def __init__(self,name,age):  #此处可以设定形参sex,也可以不设定。
        self.name=name
        self.age=age
        self.sex='male'
    def get_sex(self):
        print("Your dog's sex is {}.".format(self.sex))
my_dog=Dog('willie',6)
my_dog.get_sex()

​ 程序的运行结果如下:

Your dog's sex is male.

9.2.4 修改属性的值

​ 修改属性的值有两种方法。

​ 首先可以通过实例直接访问。如:

class Dog:
    ...
my_dog=Dog('willie',6)
my_dog.sex='female'    #直接通过实例访问
my_dog.get_sex()

​ 程序的运行结果如下:

Your dog's sex is female.

​ 其次,可以在类里面定义一个修改属性的方法,使用实例时调用其方法来修改属性的值。如:

class Dog:
    def __init__(self,name,age):  #此处可以设定形参sex,也可以不设定。
        self
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值