Python的类(Classes)——学习笔记

这篇具有很好参考价值的文章主要介绍了Python的类(Classes)——学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python的类(Classes)

When you write a class, you define the general behavior that a whole category of objects can have.

1.Write Classes and Create Instances

1.1 一个Class的组成部分

最直观的理解:可以把一个class理解为一个生命体,这个生命体有一些特有的attributes(这些attributes定义了它自己)。然后这个生命体可以完成特定动作,即method。
1)特征(attributes)->input features of the class
2)行为(behaviors)->function inside the class

举个例子:一条狗狗的特征是名字和年龄,狗狗能sit和roll over。

class Dog:
        
    def __init__(self,name,age):
        #initialize name and age attributes
        #create an instance
        
        #any variable prefixed with self is available to every method in the class
        self.name = name
        self.age = age
        
    def sit(self):
        print(f"{self.name} is now sitting.")
        
    def rool_over(self):
        print(f"{self.name} rolled over.")

__init__(self, attributes)的作用:create an instance for this class
self的作用:Any variable prefixed with self is available to every method in the class.

#创建一个class的instance
my_dog = Dog("littleblack",5)

print(f"My dog's name is {my_dog.name}.")
#输出 My dog's name is littleblack.
my_dog.sit()
#输出 littleblack is now sitting.

1.2 更新attributes

class Car:
    
    def __init__(self,make,model,year):
        
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0
        
    def get_descriptive_name(self):
        
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name.title()
    
    def read_odometer(self):
        
        print(f"This car has {self.odometer_reading} miles on it.")
    
    #update an attribute
    def update_odometer(self, mileage):
        
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")
            
    #increment an attribute
    def increment_odometer(self, miles):
        
        if miles >= 0:
            self.odometer_reading += miles
        else:
            print("You can't roll back an odometer!")

update_odometer(self, mileage)可以更新码表,与其他method不同,这里在self后新增了需要pass in的新attribute。

2.The Inheritance of a Class

2.1 关于inheritance的灵魂三问

什么时候需要使用inheritance?

If the class you’re writing is a specialized version of another class you wrote, you can use inheritance.

inheritance有什么用?

When one class inherits from another, it takes on the attributes and methods of the first class.

inheritance的关系

The original class is called the parent class, and the new class is the child class. The child class can inherit any or all of the attributes and methods of its parent class.

2.2 Inheritance例子

电车是汽车的一个子类,所以可以继承Car的attributes和methods。

class ElectricCar(Car):
    
    def __init__(self,make,model,year):
        #the super() function can call a method from the parent class
        super().__init__(make,model,year)
        #specific attributes for an eletric car
        self.battery_size = 40

1)在定义class的时输入要继承的parent class
2)使用super()函数可以调用parent class中的method。比如可使用该方法来继承parent class中的所有attributes。

2.3 Composition

Compostion: break large class into smaller classes that work together

Composition的解释:假如ElectricCar这个class中的arrtribute——battery有一些特殊的method,即这些method是专用于电池的,那我们就可以再单独定义一个class,叫Battery。这样的话就能够使得ElectricCar这个class定义更加简洁清晰。

举个例子:

#Compostion

class Battery:
    
    def __init__(self,battery_size=40):
        self.battery_size = battery_size
        
    def describe_battery(self):
        print(f"This car has a {self.battery_size}-kWh battery.")
        
    def get_range(self):
        if self.battery_size == 40:
            range = 150
        elif self.battery_size == 65:
            range = 225
            
        print(f"This car can go about {range} miles on a full charge.")


class ElectricCar(Car):
    
    def __init__(self,make,model,year,battery_size):
        #the super() function can call a method from the parent class
        super().__init__(make,model,year)
        self.battery = Battery(battery_size)

运行结果:

my_elec = ElectricCar('aito', 'm9-ultra', '2024', 65)
my_elec.battery.get_range()

#输出 This car can go about 225 miles on a full charge.

参考书目:Python Crash Course 3rd Edition文章来源地址https://www.toymoban.com/news/detail-800615.html

到了这里,关于Python的类(Classes)——学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫学习笔记(一)---Python入门

    pycharm的安装可以自行去搜索教程。 pycharm的使用需要注意: 1、venv文件夹是这个项目的虚拟环境文件,应与代码文件分开。 2、如果运行没有,最后一行是“进程已结束,退出代码为0”,如果最后不是0,那么,就说明运行出错。 print括号中使用单引号或者双引号都是可以的。

    2024年01月17日
    浏览(34)
  • Python学习笔记(十八)————python包相关

    目录 (1)python包作用 (2)自定义python包  (3)导入自定义包 方式一: 方式二:  (4)导入第三方包 ①pip安装 ②PyCharm安装 (1)python包作用 基于 Python 模块,我们可以在编写代码的时候,导入许多外部代码来丰富功能。 但是,如果 Python 的模块太多了 ,就可能造成一定

    2024年02月13日
    浏览(57)
  • Python的类与对象、构造方法、类与对象三大特性封装、继承和多态、类型注解

      使用对象组织数据 在程序中是可以做到和生活中那样,设计表格、生产表格、填写表格的组织形式的。 在程序中设计表格,我们称之为: 设计类(class) class Student: name None #记录学生姓名 在程序中打印生产表格,我们称之为: 创建对象 #基于类创建对象 stu_1 Student() stu_2 St

    2024年02月02日
    浏览(55)
  • Python 调用同一文件夹下另一个.py文件中的类和函数

    A.py文件如下: 在B.py文件调用A.py文件的add函数如下: 输出结果为: A.py文件如下: 在B.py文件调用A.py文件的add函数如下: 得到结果: 参考链接 python调用另一个.py文件中的类和函数或直接运行另一个.py文件

    2024年02月13日
    浏览(61)
  • Python学习笔记_基础篇(一)_初识python

    Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 Python和其他语言的对比: C 和 Python、Java、C#等 C语言: 代码编译得到 机器码 ,机器码在

    2024年02月13日
    浏览(46)
  • 深度学习常用的python库学习笔记

    Numpy中文网 ndarray 数组和标量之间的运算 基本的索引和切片 数学和统计方法 线性代数 Pandas中文网 Matplotlib中文网 Pillow Pillow(PIL)入门教程(非常详细)

    2024年02月13日
    浏览(42)
  • 《Python深度学习基于Pytorch》学习笔记

    有需要这本书的pdf资源的可以联系我~ 这本书不是偏向于非常详细的教你很多函数怎么用,更多的是交个基本使用,主要是后面的深度学习相关的内容。 1.Numpy提供两种基本的对象:ndarray(n维数组对象)(用于储存多维数据)和ufunc(通用函数对象,用于处理不同的数据)。

    2024年02月09日
    浏览(42)
  • Python学习笔记(持续更新)

    目录 一、基础语法 1.Print()函数  2.变量的定义和使用 3.整数类型  4.浮点类型 5.布尔类型 6.字符串类型 7.数据类型转换 8.注释 9.input()函数 10.算术运算符 11.赋值运算符 12.比较运算符 13.布尔运算符 14.逻辑运算符 15.运算符的优先级 16.对象的布尔值 二、结构 1.分支结构 2.ra

    2024年02月10日
    浏览(41)
  • 机器学习(python)笔记整理

    目录 一、数据预处理: 1. 缺失值处理: 2. 重复值处理: 3. 数据类型: 二、特征工程: 1. 规范化: 2. 归一化: 3. 标准化(方差): 三、训练模型: 如何计算精确度,召回、F1分数 在数据中存在缺失值的情况下,可以采用删除缺失值、均值填充、中位数填充、插值法等方式进行

    2024年02月07日
    浏览(46)
  • Python学习笔记(3)

    《Python编程:从入门到实践》学习笔记       使用类几乎可以模拟任何东西。下面来编写一个表示小狗的简单类Dog——它表示的不是特定的小狗,而是任何小狗。对于大多数宠物狗,我们都知道些什么呢?它们都有名字和年龄;我们还知道,大多数小狗还会蹲下和打滚。由于

    2024年02月06日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包