zoukankan      html  css  js  c++  java
  • Python基础-面向对象1

    class Bar:
        def fansik(self, name, age):
            print(name, age)
    
    obj = Bar()
    print(obj.fansik('fanjinbao', 19))
    一、定义
    函数:
    def + 函数名(参数)

    面向对象:
    class => 名字叫Bar的类
    def => 名字叫fansik的方法
    #### self
    二、执行
    函数:
    函数名()
    面向对象:
    obj = Bar() # 创建中间人(对象、实例)
    obj.fansik

    三、面向对象的封装实例
    class Person():
        def __init__(self, name, age, blood='O'):
            self.name = name
            self.age = age
            self.blood = blood
        def outinfo(self):
            print('姓名:%s
    年龄:%s
    blood type:%s' % (self.name, self.age, self.blood))
    fansik = Person('fansik', 89)
    fansik.outinfo()
    四、面向对象的继承实例
    class Father():
        def ff1(self):
            print('fangfa1')
    
        def ff2(self):
            print('fangfa2')
    
        def ff3(self):
            print('fangfa3')
    
    class Son(Father):
    
        def ff4(self):
            print('fangfa4')
    
    fansik = Son()
    fansik.ff1()
    fansik.ff2()
    fansik.ff3()
    fansik.ff4()
    五、重写父类方法
    class Father():
        def ff1(self):
            print('fangfa1')
    
        def ff2(self):
            print('fangfa2')
    
        def ff3(self):
            print('fangfa3')
    
    class Son(Father):
        # 重写父类方法
        def ff3(self):
            # 引入父类的方法
            # super(Son, self).ff3()
            # 或者使用这种方式
            # Father.ff3(self)
            print('fangfa4')
    
    fansik = Son()
    fansik.ff1()
    fansik.ff2()
    fansik.ff3()
    六、Python中支持多继承
    a、左侧有限
    b、一条道走到黑
    c、同一个根是,根最后执行
    class BaseRequest:
        pass
    
    class RequestHandler(BaseRequest):
        def serve_forever(self):
            print('RequestHandler.serve_forever')
            self.process_request()
        def process_request(self):
            print('RequestHandler.prcess_request')
    
    class Minx:
        def process_request(self):
            print('minx.process_request')
    
    class Son(Minx, RequestHandler):
        pass
    
    obj = Son()
    obj.serve_forever()
    执行结果:
    RequestHandler.serve_forever
    minx.process_request
    说明:serve_forever()中的self.process_request()执行的是Son的process_request()所以输出是minx.process_request

    类成员:
    字段
    - 普通字段,保存在对象中,执行职能通过对象访问
    - 静态字段,保存在类中,执行可以通过对象访问,也可以通过类访问
    方法
    - 普通方法,保存在类中,由对象来调用,self --> 对象
    - 静态方法,保存在勒种,由类直接调用
    - 类方法,保存在勒种,有类直接调用,cls --> 当前类
    应用场景:
    如果对象中需要保存一些值,执行某功能时,需要使用对象中的值---->普通方法
    不需要任何对象值,
    class Fansik:
        # 静态字段
        country = '中国'
        # 构造方法
        def __init__(self, name):
            # 普通字段
            self.name = name
    
        # 普通方法
        def common_method(self, name, age):
            print(name, age)
    
        # 静态方法
        @staticmethod
        def static_method(x, y):
            print(x, y)
    
        # 类方法
        @classmethod
        def class_method(cls):
            print(cls)
            print('class_method')
    
    fan = Fansik('fanjinbao')
    print(Fansik.country)
    print(fan.country)
    Fansik.static_method(1, 2)
    fan.static_method(1, 2)
    fan.common_method(1, 2)
    Fansik.class_method()
    分页的简单实现:
    class Pagenation:
        def __init__(self, current_page):
            try:
                p = int(current_page)
            except Exception as e:
                p = 1
            self.page = p
        @property
        def start(self):
            val = (self.page - 1) * 10
            return val
        @property
        def end(self):
            val = self.page * 10
            return val
    li = [x for x in range(1000)]
    while True:
        page = int(input('要查看的页码:'))
        obj = Pagenation(page)
        print(li[obj.start:obj.end])
  • 相关阅读:
    jQuery(jquery ui,jquery plugins)插件笔记1
    怎样批量删除.svn文件
    js中传递参数为0开头的数字时候,存在转码的问题
    struts文件上传,获取文件名和文件类型
    Log4j配置
    怎样通过CSS控制input输入框有readonly属性的背景色
    EXECUTE IMMEDIATE
    row_number() over(partition by column1 order by column2 desc) rn 用法
    React概述
    Web前端,高性能优化
  • 原文地址:https://www.cnblogs.com/fansik/p/7718136.html
Copyright © 2011-2022 走看看