九、类(2022-04-14)

面向对象变成是最有效的软件编写方法之一。在面向对象变成中,基于现实世界中的事物和情景,来创建类。

编写类时,大类对象都具有的通用行为。基于类创建的每个对象都自动具备这种通用行为,然后根据需要赋予每个对象独特的个性。

根据类来创建对象称为实例化,从而调用类的实例。

面向对象变成帮助你真正明白编写的代码:不仅是各行代码的作用,还有代码背后更宏大的概念。

1.创建和使用

使用类几乎可以模拟任何东西。

1.1 创建cat类

class Cat:  # 使用class 语法创建类, 注意类名的首字母大写
    def __init__(self, name, age):  # 初始化属性 name 和 age
        self.name = name
        self.age = age

    def jump(self):  # 模拟小猫跳跃
        print(f"{self.name} is jumping.")

    def yawn(self):  # 模拟小猫神懒腰
        print(f"{self.name} is yawning.")

** 方法 init() **

类中的函数称为方法。函数的相关内容都适用于方法,但调用的方式有差别。

init_()是一个特殊的方法,每当你根据类创建新的实列时,python都会自动运行它。

这个方法的开头和结尾都有两个下划线,旨在避免python默认方法与普通方法名称冲突。

以上将方法init()定义成包含三个形参:self,name,age。在这个定义中self必不可少,且必须位于其他形参的前面。

因为python调用这个方法来创建实例时,将自动传入实参self。每个与实例相关的方法调用都自动传递实参self。

他是一个指向实例本身的引用,让实例能够访问类中的属性和方法。调用类的方法时,self都会自动传递,因此不需要传递他。

以self为前缀的变量可供类中所有的方法使用。

self.name = name 获取与形参name相关联的值,并将其赋值给变量name,然后该变量将被关联到当前创建的实例。这样可通过实例访问的变量称为属性。

1.2 根据类创建实例(实例化)

my_cat = Cat('mao rong', '4')  # 实例化my_cat ,注意类名首字母大写
print(f"My cat's name is {my_cat.name}.")  # 使用句点法调用属性 my_cat.name
print(f"My cat is {my_cat.age} years old.")

My cat's name is mao rong.
My cat is 4 years old.

1.3调用方法

my_cat = Cat('lili', '5')
my_cat.yawn()  # 使用句点法调用类的方法(函数) ,注意要代括号。
my_cat.jump()

lili is yawning.
lili is jumping.

1.4创建多个实例

her_cat = Cat('jack', '3')
his_cat = Cat('lucy', '6')

print(f"My cat's name is {her_cat.name}.")  # 使用句点法调用属性 my_cat.name
print(f"My cat is {her_cat.age} years old.")
her_cat.jump()

print(f"My cat's name is {his_cat.name}.")  # 使用句点法调用属性 my_cat.name
print(f"My cat is {his_cat.age} years old.")
his_cat.yawn()

My cat's name is jack.
My cat is 3 years old.
jack is jumping.
My cat's name is lucy.
My cat is 6 years old.
lucy is yawning.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容