开发者社区> 王小王-123> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

初识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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python-面向对象
Python-面向对象
20 0
python面向对象之创建类
python面向对象之创建类
18 0
Python面向对象
面向对象简介
32 0
【python】面向对象
1.简单写个例子,因为之前基本没写过python OOP。先写个父类 class Animal: # 构造方法 def __init__(self, name): self.
923 0
初识python中的类与对象
类的概念与定义 在生活中,我们走在路边,看到一辆车,大脑中首先想到的是“这是一辆车, 然后才是这是一辆什么牌子的车”,在这里,我们就用到了编程中的类的概念。 同样的,看到一条小狗,也会先想到这是一条狗,然后会想到这是一条什么品种的狗。
723 0
+关注
王小王-123
快乐代码,精彩人生!
268
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载