• python_面向对象


    面向对象基本格式:

    # 定义一个类:Account
    class Account:
        # 类中的方法
        def login(self):
            print('登录')
        def logout(self,name):
            print('注销',name)
            return 123
    
    # 调用类中的方法
    # 1.创建对象
    x = Account() #创建一个Acount类的对象
    # 2.使用对象调用类中的方法
    x.login()
    y = x.logout('wdc')#可以传递参数和接收返回值
    print(y)

      应用场景:遇到很多函数,需要给函数进行归类和划分。【封装】

    对象的作用:

      存储一些值,以后方便自己使用。

    class Person:
        def show(self):
            print(self.name)
    
    p1 = Person()
    p1.name = 'wdc'
    
    p1.show()
    
    p2 = Person()
    p2.name = 'yhf'
    
    p2.show()

    类的初始化方法:

      将数据封装到对象,方便我们使用。

    class Person:
        def __init__(self,name,age,gender):# 初始化方法:给对象内部数据初始化。
         #将传进来的参数赋值给对象中的变量。和实例绑定。 self.name = name self.age = age self.gender = gender def show(self): temp = '姓名:{},年龄:{},性别:{}'.format(self.name,self.age,self.gender) print(temp) # 类()实例化对象,自动执行此类中的 __init__方法。 p1 = Person('王佃超','22','') p1.show() p2 = Person('尹洪飞','23','') p2.show()

    继承:

    # 父类
    class Base:
        def f1(self):
            pass
    # 子类
    class Foo(Base):
        def f2(self):
            pass
    
    # 创建一个子类对象
    obj1 = Foo()
    # 执行对象.方法时,优先在自己的类中找,如果没有就去父类中找。
    obj1.f2() #执行自己的方法
    obj1.f1() #执行父类中的方法
    
    # 创建一个父类对象
    obj2 = Base()
    # 只能执行自己的类中的方法,不能执行子类中的方法。
    obj2.f1()

      问题:什么时候才能用到继承?

        多个类中如果有公共的方法,可以放到父类中避免重复编写。

    静态方法和类方法(特殊的静态方法)

    class Dog:
        # 静态方法
        @staticmethod
        def f1(name,age):
            print('...')
            print(name,age)
        # 类方法,至少有一个参数cls。
        @classmethod
        def f2(cls):
            print(cls)
    # 静态方法是由类来调用执行
    Dog.f1('wdc',123)
    # 类方法不用传递参数,自动将类名传递进去
    Dog.f2()

      静态方法就等于python中的函数。

  • 相关阅读:
    设计模式(一)工厂模式Factory(创建型)
    Caused by: org.springframework.beans.factory.BeanCreationException
    从Delphi 7升级到Delphi XE
    system strategies of Resources Deadlock
    Service Manager流程,派BC_REPLY,唤醒FregServer流程,返回BR_TRANSACTION_COMPLETE,睡眠等待proc->wait
    Sqlserver2000联系Oracle11G数据库进行实时数据的同步
    火柴移动面试题
    Eclipse4.4设备egit插件提交本地项目代码到远程仓库
    V离MWare至Openstack至FDIO
    【BZOJ1791】【IOI2008】【基环树】island(status第一速度)
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11643784.html
Copyright © 2020-2023  润新知