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

前言
hello,各位小伙伴,好久不见,前段时间由于事情繁多,这个面向对象的语法比较的重要,而且有一些小难度,所以小王就没有定期分享文章了,正所谓“一心一意才可以做好每一件事情”,希望大家在学习的时候也要这样哟。

Python本来就是一门简单的编程语言,但是大家也要有好的学习方法和态度哟,这样才可以真正的学懂这一门语言!希望大家在自己空闲的时间可以多去涉猎一些自己专业方面的知识,所谓天道酬勤。唯有不断的修炼自己,才能提高自己幸运值。

话不多说!我们开始学习吧!!!
在这里插入图片描述

面向对象的知识概念
类对象

class Myclass:
    '''这是一个类'''
    i=123456
    def f(self):
        return "hello python"
x=Myclass()#实例化类,和函数调用类似
print(x.i)
print(x.f())


在这里插入图片描述

 # '''类方法'''
class Smplclass:
    def info(self):
        print("这是我的类!")
    def sum(self,x,y):
        return x*y
se=Smplclass()
print(se.sum(10,12))
se.info()

在这里插入图片描述


# '''构造方法'''
class Complex:
    def __init__(self,name,age):#类的实例化操作会自动调用init方法
        self.name=name
        self.age=age
x=Complex("bob",18)
print(x)#没有实例化属性就会出现你看不懂的值
print(x.name,x.age)

在这里插入图片描述

'''调用类自身的方法和全局函数'''
def diao(x,y):
    return (abs(x),abs(y))
class Ant:
    def __init__(self,x=0,y=0):
        self.x=x
        self.y=y
        self.d_point()
    def yi(self,x,y):
        x,y=diao(x,y)
        self.e_point(x,y)
        self.d_point()
    def e_point(self,x,y):
        self.x+=x
        self.y+=y
    def d_point(self):
        print("你的当前位置是:(%d,%d)"%(self.x,self.y))
ant_a=Ant()
ant_a.yi(2,7)
ant_a.yi(-5,6)

在这里插入图片描述

'''模拟狗狗的日常'''
class Dog():
    '''小狗狗'''
    def __init__(self,name,age):
        '''初始化属性name和age'''
        self.name=name
        self.age=age
    def wang(self):
        '''模拟狗狗的汪汪叫'''
        print(self.name.title()+"汪汪!")
    def shen(self):
        print(self.name.title()+"伸舌头")
my_dog=Dog("junne",15)
you_dog=Dog("linux",16)
print("我的爱犬的名字是:"+my_dog.name.title()+".")
print("我的爱犬已经是:"+str(my_dog.age)+"岁了!")
my_dog.wang()
my_dog.shen()
print("\n你的爱犬的名字是:"+you_dog.name.title()+".")
print("你的爱犬已经是:"+str(you_dog.age)+"岁了!")
you_dog.wang()
you_dog.shen()

在这里插入图片描述

'''析构方法'''
class Newclass(object):
    num_count=0 #全局变量
    def __init__(self,name):
        self.name=name
        Newclass.num_count +=1
        print(name,Newclass.num_count)
    def __del__(self):#定义析构方法__del__释放内存空间!!!!
        Newclass.num_count-=1
        print("析构",self.name,Newclass.num_count)
    def test(self):
        print("aa")
aa=Newclass("hello")
bb=Newclass("world")
cc=Newclass("aaaa")
del aa
del bb
del cc
print("over!")

在这里插入图片描述


'''静态方法和类方法'''
'''静态方法没有隐含调用参数,应该使用@staticmethod
    类方法隐含调用的参数是类,应该使用@classmethod
'''
class jing:
    def __init__(self,x=0):
        self.x=x
    @staticmethod
    def static_method():
        print("此处调用了静态方法!")

    @classmethod
    def class_method(cls):
        print("此处调用了类方法!")
jing.static_method()
jing.class_method()
dm=jing()
dm.static_method()
dm.class_method()

在这里插入图片描述

''' 类属性'''
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) + "千米!")

my_new_car=Car("Benz","E300L",2016)
print(my_new_car.get_descriptive_name())
# my_new_car.odometer_reading=12
my_new_car.update_obometer(15)
my_new_car.read_obometer()
my_new_car.increament_odometer(2000)
my_new_car.read_obometer()

在这里插入图片描述

'''继承'''
'''定义并使用子类'''
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()

在这里插入图片描述

'''多重继承'''
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()

在这里插入图片描述总结

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

  • 38
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小王-123

您觉得舒心就点一点吧~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值