文章目录


前言

一、创建和使用类

二、修改属性的值

三、继承

四、导入类

总结



前言

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


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

一、创建和使用类

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的小萌新们!!!