初识Python之面向对象篇(中)

简介: 初识Python之面向对象篇
'''继承'''
'''定义并使用子类'''
class Car():
    """汽车之家"""
    def __init__(self, manufacturer, model, year):#为实例化提供形参信息
        self.manufacturer=manufacturer
        self.model=model
        self.year=year
        self.odometer_reading=0
    def get_descriptive_name(self):#返回信息打印
        long_name=str(self.year)+" "+self.manufacturer+" "+self.model
        return long_name.title()
    def update_obometer(self, mileage):#里程增加
        if mileage>=self.odometer_reading:
            self.odometer_reading=mileage
            # print("这是一个合理的数据!",str(self.odometer_reading)+"千米!")
        else:
            print("这是一个不合理的数据!")
    def increament_odometer(self,miles):#智能加曲
        self.odometer_reading+=miles
    def read_obometer(self):#打印里程数
        print("这是一辆新车,目前仪表显示行程为" + str(self.odometer_reading) + "千米!")
class Bmw(Car):
    '''这是一个子类,基类是Car'''
    def __init__(self,manufacturer, model, year):
        super().__init__(manufacturer, model, year)#这个是一个特殊的函数,它的功能是将父类和子类连接关联起来
        # self.battery_size="6缸 3.0T"
        self.Motor=Motor()#自动创建该motor实例,虽然没有指定参数,但是下面的函数指定了
    # def motor(self):
    #     print("发动机是"+str(self.battery_size))
class Motor(Bmw):
    def __init__(self,Motor_size=60):
        self.Motor_size=Motor_size
    def describe_motor(self):
        print("这款车的发动机参数是"+str(self.Motor_size)+"6缸,3.0T涡轮增压,225KW.")
my_tesla=Bmw("宝马","535Li","2017款")
print(my_tesla.get_descriptive_name())
my_tesla.update_obometer(0)
my_tesla.read_obometer()
# my_tesla.motor()
print("*******************************")
my_tesla.increament_odometer(10)
my_tesla.read_obometer()
my_tesla.Motor.describe_motor()

image.png

'''多重继承'''
class Wai:
    def __init__(self,x=0,y=0,color="black"):
        self.x=x
        self.y=y
        self.color=color
    def haijun(self,x,y):
        self.x=x
        self.y=y
        print("发射鱼雷.......")
        self.info()
    def info(self):
        print("定位目标:(%d,%d)"%(self.x,self.y))
    def gongji(self):
        print("导弹发射!!!")
class FlyWai(Wai):
    def gongji(self):
        print("飞船拦截!!!")
    def fly(self,x,y):
        print("火箭军........")
        self.x=x
        self.y=y
        self.info()
flyWai=FlyWai(color="red")
flyWai.haijun(100,200)
flyWai.fly(12,15)
flyWai.gongji()

image.png


总结

这些代码是我前段时间自己敲打出来的,知识点也比较全面,可以从一步一步的去按照这个节奏,自己写一写,这样有利于自己的认识和巩固。希望可以对大家有帮助,最后如果你们在实际运用中,有什么问题,欢迎留言私信我哟,尽我所能的帮助你!哈哈哈,我们下期文章再会!

image.png

image.png

image.png

image.png


满满的干货,都是小王在网络大数据的平台,细细挑选的,亲测试用,如果你不知道如何选择书籍,就快来领取福利吧!


前面我们介绍了关于Python面向对象的基础知识和概念,今天我们来了解一下关于它的高级用法与进阶。

模块架构,早在之前的文章我们就已经提到过,但是在这里我又不得不提起,因为它是面向对象的一个接口,我们只有熟练这些模块的使用,才能对后面的一些知识点得心应手。

'''模块架构'''
import math
from math import sqrt
import math as shuxue
a=math.sqrt(16)         #直接用模块加函数
b=sqrt(4)               #用函数
c=shuxue.sqrt(9)        #用自命名的模块加函数
print(a,"\t",b,"\t",c)
if __name__=="__main__":
    print(a)
else:
    print(c)

image.png


"""使用包"""

'''例如上述实验方法,我们在导入包的时候,可以有不同的方法,因为导入不同,所以调用也不同

所以,我们在调用的时候必须要看后面的是什么,比如import requests 这个时候我们要使用这个里面的功能

必须以 requests.get()方法,或者from requests import get方法,还有一系列的,所以我们在自己开发试验的时候必须

熟悉自己的方法,避免混淆

'''


'''导入类'''

'''类的导入与模块相似'''

'''迭代器'''
'''迭代器的使用例如for循环语句遍历迭代器'''
class Use:
    def __init__(self,x=2,max=50):
        self.__mul,self.__x=x,x     #初始化属性,X的初始值是2
        self.__max=max
    def __iter__(self):
        return self
    def __next__(self):
        if self.__x and self.__x !=1:
            self.__mul *=self.__max
            if self.__mul <=self.__max:
                return self.__mul
            else:
                raise StopIteration
if __name__=="__main__":
    my=Use()
    for i in my:
        print("迭代数据元素为:",i)


'''使用内置迭代器方法iter()'''
class Counter:
    def __init__(self,x=0):
        self.x=x
counter=Counter()
def used_iter():
    counter.x+=2
    return counter.x
for i in iter(used_iter,52):    #iter该函数用于函数,当最后一个参数迭代后返回和自己定义的相等的时候,程序结束,例如12
    print(i)
from itertools import *
def height_class(h):
    if h > 180:
        return 'tall'
    elif h < 180:
        return "short"
    else:
        return "middle"
friends=[191,158,159,169,148,163,175,156,123,149,256,596,648,789,156,3589,180]
friends=sorted(friends,key=height_class)
for m,n in groupby(friends,key=height_class):#使用groupby()遍历数据
    print(m)
    print(list(n))

image.png

相关文章
|
Java 程序员 C++
Python 面向对象详解!
本文详细介绍了Python中的面向对象编程(OOP),包括类、对象、继承、封装、多态和抽象等核心概念。通过具体示例,解释了如何使用类定义对象的属性和方法,以及如何通过继承实现代码重用。文章还探讨了封装和多态的重要性,并介绍了私有属性和抽象类的使用方法。最后,总结了OOP的四大支柱:封装、抽象、继承和多态,强调了这些概念在Python编程中的应用。适合Java程序员扩展Python编程知识。
382 2
|
10月前
|
Python
Python 高级编程与实战:深入理解面向对象与并发编程
本文深入探讨Python的高级特性,涵盖面向对象编程(继承、多态、特殊方法、类与实例属性)、异常处理(try-except、finally)和并发编程(多线程、多进程、异步编程)。通过实战项目如聊天服务器和异步文件下载器,帮助读者掌握这些技术,编写更复杂高效的Python程序。
|
Python
你真的会面向对象吗!解密Python“魔术方法”
你真的会面向对象吗!解密Python“魔术方法”
177 0
|
存储 算法 安全
Python编程实验六:面向对象应用
Python编程实验六:面向对象应用
260 1
|
人工智能 自然语言处理 开发者
Python基础教程——面向对象
Python基础教程——面向对象
|
Python
Python面向对象(2)
【10月更文挑战第14天】
188 6
Python面向对象(2)
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
152 2
Python面向对象
|
前端开发 Python
Python编程的面向对象有哪些(二)
Python编程的面向对象(二)—类的多态
125 7

推荐镜像

更多