python入门 ——类

文章目录


前言

面向对象编程是最有效的软件编写方法之一。而在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。根据类来创建对象称为实例化,这就让你能够使用类的实例。​​​​​​​


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建和使用类

class Dog:

    def __init__(self, name, age):
        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!")
    
    def renew_name(slef, name):
        self.name = name


my_dog = Dog('Willie', 6)


my_dog.sit()
my_dog.roll_over()

1.其中方法 __init__(),是一个特殊的方法,每当你创建新实例时,Python都会自动运行它。在此方法中,形参self不可缺少,而且必须位于其他形参的前面。

2. self.age = age,像这样可通过实例访问变量称为属性

可能刚学习的小伙伴有这样的好奇,self.age 里面的age与 方法中变量中age是否是一个变量?它们之前是否存在关联?其实它们不是同一个关系,也没有什么联系,这是我们在编程时一种习惯,为的是让我们能够方便我们填入参数时与我们self前缀的变量赋值是能相对应,还有一点self前缀的变量可以提供给该类中的所有方法使用,可以理解为在该类中的全局变量。

3.my_dog = Dog('Willie', 6) ,即可创建类的实例,怎样来理解类的实例呢?我是这样理解的:你看类是不是没有明确指定哪一个,就如同罗翔老师经常拿张三做例子,但他没有指定是某某地的张三,而是一个广泛的一个概念,张三可能是你也可能是我?是不是?虽然这个例子好像不怎么准确,但它反应了这样一个现象当我们没有很明确指定一个事物时,它就是一个广泛的概念,但当我们明确了一个事物的具体外貌时,我们就可以确定这是个什么东西了,回到这句代码上my_dog = Dog('Willie', 6),我们使用Dog这个类,必填入其姓名和年龄,那是不是就是我自己的独一份的类,这就是类的实例,不知道我讲没讲清楚哈。

4.创建好实例后,我们可以通过实例名 + ‘.’来访问属性和方法。

二、修改属性的值

1、直接修改属性的值:

my_dog.name = 'anko'

2、通过方法修改属性的值:

my_dog.renew_name('jolh'):

三、继承

        如果要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,将自动获得另一个类的所有属性和方法。原有的类称为父类,而新类称为子类。子类继承父类属性和方法,同时还可以定义自己的属性和方法。 

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()


class ElectricCar(Car):
    def __init__(self, make, model, year):
        super().__init__(make, model, year)

1、父类必须包含在当前文件中,且位于子类前面。

2、super() 是一个特殊函数,让你能够调佣父类的方法。

3、子类创建自己的属性和方法:

class ElectricCar(Car):
    def __init__(self, make, model, year):
        super().__init__(make, model, year)
        self.battery = Battery()

    def get_descriptive_name(self):#重写一次
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name

 如果你想剔除父类中的方法,你可以在子类里写入父类相同名的方法,Python 将忽略父类中的方法,而使用子类中的方法。

四、导入类

1、导入单个类:

from test import Car

 2、导入多个类:

from test import Car, Battery

3、导入整个类:

import test

4、导入模块中所有的类

from test import *

  有小伙伴会发现导入类与导入函数的方法差不多,所有我们如何才能分别我们导入函数还是导入类呢?

1、导入模块的命名:类名一般采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。 

2、我们使用类时,我们一定需要类的实例化,所有当出现 ‘ = ’ 时,我们就可以判定为类。


总结

        我也是刚学Python,想记录自己一些学习的经历,如果有什么错误,请及时评论改错。最后希望这篇文章能帮助像我一样刚学Python的小萌新们!!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值