• 面向对象编程


    class Chinese:
        country='China'
        def __init__(self,name):
            self.name=name
    
        def play_ball(self,ball):
            print('%s 正在打%s' %(self.name,ball))
    ##实例的数据属性的增删改查
    p1=Chinese('alex')
    print(p1.__dict__)              #{'name': 'alex'}
    
    #查看
    print(p1.name)                  #alex
    print(p1.play_ball('篮球'))     #alex 正在打篮球    None
    
    #增加
    p1.age=20
    print(p1.__dict__)          #{'name': 'alex', 'age': 20}
    print(p1.age)               #20
    
    #不要修改底层的属性字典
    # p1.__dict__['sex']='male'
    # print(p1.__dict__)
    # print(p1.sex)
    
    #修改
    p1.age=12
    print(p1.__dict__)          #{'name': 'alex', 'age': 12}
    print(p1.age)               #12
    
    #删除
    del p1.age
    print(p1.__dict__)          #{'name': 'alex'}


    ##实例的函数属性的增删改查

    p1 = Chinese('alex')


    # print(p1.__dict__) # {'name': 'alex'}
    #
    # # 查看
    # print(p1.name) # alex
    # print(p1.play_ball('篮球')) # alex 正在打篮球 None
    #
    # # 增加
    # p1.age = 20
    # print(p1.__dict__) # {'name': 'alex', 'age': 20}
    # print(p1.age) # 20
    # # =======================================================
    # # 不要修改底层的属性字典
    # # p1.__dict__['sex']='male'
    # # print(p1.__dict__)
    # # print(p1.sex)
    # # ======================================================
    # # 修改
    # p1.age = 12
    # print(p1.__dict__) # {'name': 'alex', 'age': 12}
    # print(p1.age) # 12
    #
    # # 删除
    # del p1.age
    # print(p1.__dict__) # {'name': 'alex'}


    # 实例的函数属性的增删改查
    # 查
    p1.play_ball('篮球') # alex 正在打篮球


    # 增加
    def study(self, lesson):
    print('%s正在上%s' % (self.name, lesson))
    #
    #
    p1.study = study
    # p1.study('英语课')
    # # 报错, 原因用实例创建的函数属性和类创建的函数属性不同, 类可以不输入self程序自动输入,而实例创建的必须手动输入
    p1.study(p1, '英语课') # alex正在上英语课

    # 修改
    #  实际上修改就是增加
    def play_ball(self, ball):
    print('%s不喜欢%s' % (self.name, ball))
    #
    #
    p1.play_ball = play_ball
    p1.play_ball(p1, '篮球') # alex不喜欢篮球
    Chinese.play_ball(p1, '篮球') # alex 正在打篮球
    # 实例已经不能调用类属性的函数属性了,因为实例里面有自己的函数属性 ,类的函数属性修改还是需要在类下面操作

    # 删除

    del play_ball
    p1.play_ball('篮球')# 报错 实例下面没有就报错, 不能铲除类的函数属性
    def play_ball(self, ball):
    print('%s不喜欢%s' % (self.name, ball))


    p1.play_ball = play_ball

    print(p1.__dict__)
    p1.play_ball(p1, '篮球') # alex不喜欢篮球
    del p1.play_ball # 只写play_ball 无效, 不能区分类下的,还是实例下的play_ball
    print(p1.__dict__)


     
  • 相关阅读:
    UVA 1152 4 Values whose Sum is 0
    IOI 2006 Pyramid
    CTSC 2000 冰原探险
    IOI 2009 Mecho
    IOI 2011 Rice Hub 米仓
    NOIP 2013 火柴排队 程序
    USACO 2004 MooFest 奶牛集会
    USACO Training Section 3.1 Contact
    动态加载Ribbon功能区
    Ribbon2: 创建动态的Ribbon库
  • 原文地址:https://www.cnblogs.com/vincent-sh/p/12768433.html
Copyright © 2020-2023  润新知