python——面向对象编程

一、编程思想

面向过程编程(典型:c语言):是一种以过程为中心的编程思想。它强调流程化、线性化、步骤化的思考方式,实现思路就是函数。

面向对象编程:强调整体性和差异性。它将任何事物看做一个统一整个,行为的多样性和多态性,还有程序可扩展性。面向对象四大特征:抽象,封装,继承,多态。

二、类和对象

其实是一类事物的统称或概况,是一种归纳,类是对象抽象出来的概念。

对象就是现实真实存在的,可以具体来描述。

三、类的创建

语法:

class   类名:

        类的属性(特征)

        类的方法(行为)

说明:

  • 类名称、类属性、类方法都属于python标识符,需要遵守标识符规范
  • 类属性本质就是变量
  • 类方法本质就是函数

1、类的构造方法 

1)类中构造方法名称都是固定的。只能是 __init__ (init左右两边是双下划线),名称不可以修改。如果在类定义时候添加这个构造方法,每当创建类的对象时(类实例化),python解释器会自动调用该构造方法。构造可以包含多个参数,但是第一参数必须包含self参数。(self是python中默认写法)。

2)构造方法不能加返回值(构造方法中,不能使用return语句)。

3)当前类中是否编写构造方法,实例化类的对象时,默认都会调用构造方法。python类的构造方法有且只有一个。

4)构造方法作用:

  1. 用来实例化类
  2. 用来初始化类的属性

2、类的析构方法

析构方法作用:用于资源的回收,释放对象所占用的资源。

析构方法注意事项:

析构方法名称是固定。只能是__del__(del左右两边是双下划线),不能修改。

若在类中定义该方法,每当创建一个类的对象时,使用完成后,python解释器自动调用析构方法。

四、self的含义

self表示类实例化的对象本身,谁调用类中方法、属性,self就表示谁。

总结:

  1. self这个参数不需要手动进行传参,当某个对象调用方法时,python解释器会自动把该对象本身作为参数传递给self这个形参。
  2. self也可以改名称,self只是python中默认写法。一般都不会修改。

五、面向对象编程的三大特征

1、封装

定义:封装是隐藏对象的属性和方法实现细节,对外部仅仅提供公共访问的方式。

2、继承

继承就是子类继承父类的属性(特征)和方法(行为),使得子类具有父类的相同属性和方法。当然,子类还可有个性属性,个性方法。

继承好处:

  1. 继承能够提升代码的重用率,编写一个类,可以在多个子类中直接使用;
  2. 能够有效进行代码管理。当某个类有问题需要修改时,需要修改这个类中方法即可,其他子类无需修改。

如何实现继承?

继承是一种创建新类的方式。当我们定义一个类的时候,可以继承某个现有的类。

语法:

class   子类名称(父类名称):

        pass

多继承:

 子类同时可以继承多个父类。

语法:

class   子类(父类1,父类2,父类3,...):

        pass

3、多态

作用:具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。

六、实例

# 对象:计算器
# 功能:+-*/清零
class Caculator:
    def __init__(self,a,b):
        self.numa=int(a)
        self.numb=int(b)
    def add(self):
        print(f'{self.numa}+{self.numb}={self.numa+self.numb}')
    def sub(self):
        print(f'{self.numa}-{self.numb}={self.numa-self.numb}')
    def mul(self):
        print(f'{self.numa}*{self.numb}={self.numa*self.numb}')
    def div(self):
        print(f'{self.numa}/{self.numb}={self.numa/self.numb}')
    def cl(self):
        return 0
    def run(self):
        print('欢迎使用计算器')
        while True:
            choice=int(input('请输入功能:1加2减3乘4除5清零6退出系统'))
            if choice==1:
                self.add()
            elif choice==2:
                self.sub()
            elif choice==3:
                self.mul()
            elif choice==4:
                self.div()
            elif choice==5:
                self.cl()
            elif choice==6:
                exit=input('您是否确认退出 y是,n否')
                if exit=='y':
                    print('欢迎下次访问')
                    break
            else:
                warn = input("您的输入非法,是否重新输入:y是,n否")
                if warn == "n":
                    print("欢迎下次使用!")
                    break
                return False

if __name__ == '__main__':
                while True:
                    print('欢迎使用计算器')
                    data1 = int(input('请输入第一个操作数据'))
                    data2 = int(input('请输入第二个操作数据'))
                    use=Caculator(data1,data2)
                    use.run()
                    continue
                    exit = input('您是否确认退出 y是,n否')
                    if exit == 'y':
                        print('欢迎下次访问')
                        break

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值