Python 编程基础 IX 类

发布时间:2024年01月20日

面向对象编程是最有效的软件编写方式之一,这一节我们来讲类和对象的相关概念。

image.png

1.创建和使用类

在 python 中,我们可以使用 class 关键字来声明一个类,其中首字母需要大写:

class Dog:  
    # 类中的函数被称为方法,__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。  
    # 在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。  
    # 其中 self 参数是一个指向实例本身的引用,让实例能够访问类中的属性和方法,必不可少的参数。  
    def __init__(self, name, age):  
        self.name = name  
        self.age = age  
  
    def sit(self):  
        print(self.name.title() + " is now sitting.")  
  
    def roll_over(self):  
        print(self.name.title() + " rolled over!")  
  
# 实例  
my_dog = Dog('willie', 6)  
my_dog.sit()  
my_dog.roll_over()

2.使用类和实例

创建实例的方法也很简单,直接传入相关实际参数就可以了。

my_dog = Dog('willie', 6) 

3.继承

我们看上面的例子,我们写的类是狗,我们写的方法也是狗都会的动作,比如 sit 和 roll_over,但是实际上狗也分为很多种,比如哈士奇,比如柴犬,当我们需要实例化一个哈士奇的时候,我们需要编写一个哈士奇的 class,那么哈士奇的 class 中实际上也是需要 sit 和 roll_over 的,因为这是狗都会的方法,那么我们是怎么操作呢,难道实在编写哈士奇这个 class 的时候重新写一遍这两个方法吗,包括属性,实际上每一只狗都有 name 和 age,我们是都需要在哈士奇这个 class 中重写吗?

实际上肯定是不需要的,这里就可以使用继承的方法来书写新的类。

class Dog:  
    # 类中的函数被称为方法,__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。  
    # 在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。  
    # 其中 self 参数是一个指向实例本身的引用,让实例能够访问类中的属性和方法,必不可少的参数。  
    def __init__(self, name, age):  
        self.name = name  
        self.age = age  
  
    def sit(self):  
        print(self.name.title() + " is now sitting.")  
  
    def roll_over(self):  
        print(self.name.title() + " rolled over!")  
  
class Hashiqi(Dog):  
    def __init__(self, name, age, color):  
	    # 注意,这里使用 super().__init__ 来继承父类的属性
        super().__init__(name, age)  
        self.color = color  
        
	# 子类自然继承父类的方法,新的方法可以自己另写  
    def show_color(self):  
        print(self.name.title() + " is " + self.color)  
  
my_dog = Hashiqi('willie', 6, 'black')  
my_dog.sit()  
my_dog.roll_over()  
my_dog.show_color()

上面的这个例子中,我们这个新的 class Hashiqi ,实际上就继承了 Dog 这个类,通过这种方法,我们就不用再次书写同样的属性和方法,只需要继承即可,我们可以接着编写其他的狗的 class,只需要将共性的方法和属性都提取到 Dog 类中,然后继承即可。

4.导入类

和模块的导入是一样的,比如上面我们的 Dog 类如果单独放在一个叫做 dog.py 的文件中,这个时候,我们就需要在 Hashiqi 类的文件中引入:

form car import Car

5.python 标准库

我们之前讲了如何引入模块,如何引入类,那实际上 python 本身就实现了很多的方法,我们叫做 python 标准库,我们可以从标准库中引入很多实用的方法:

# 引入一个生成随机数的方法
form random import randint

6.类编码风格

正如最开始所说,面向对象编程是一种非常常用的编码方式。他也有一些规定,比如我们的类的开头必须大写,这一点我们已经这么做了,另外在 python 中,我们使用大驼峰的方式来命名类:

image.png

所以写到这里,我们可以看出上面的案例中命名其实是错误的,我们一直写的是 Hashiqi,而实际上应该是 HaShiQi

文章来源:https://blog.csdn.net/weixin_54252035/article/details/135657676
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。