• 面向对象,二


    面向对象的进阶:

          成员:

               字段        静态字段(没一个对象都有一份),普通字段(每一个对象都不同的数据)

               方法        静态方法(无需使用对象封装的内容),l类方法,普通方法(使用对象中的数据)

               特性        普通特性(将方法伪造成字段)

    快速判断,类执行,对象执行:

                   self,对象调用

                   无self,类调用

    @xxx.setter            #特性里边的一个方法,修改旧的值重新赋一个新的值  注意上下两函数名必须相同
    
    
    @property               #特性,将方法伪造成字段
    
    
    
    @staticmethod         #静态方法,不用加self,可以加参数
    
    
    
    @classmethod           #类方法
    

     成员修饰符:

                 私有,仅供自己使用,其他谁也不好使

                  在python里边成员修饰符只有两个,一个共有,一个私有。

    #修饰符
    
    class Foo:
        __ox = "ox"        #修饰符不能外部执行,只能内部执行。
       
        def fetch(self):
            print(Foo.__ox)       
    obj = Foo()
    obj.fetch()
    class Foo:
        def __init__(self):
            print("init")
        def __call__(self,*args,**kwargs)
             print("call")
    r = Foo()          #在类名后边加括号执行init
    r()              #在对象后边加括号是指行call
    
    
    
    
    #特殊的常用方法:
    __init__
    __call__
    ——

     

    #__getitem__
    
    class Foo:
    
        def __getitem__(self,item)
            print(item)
    r = Foo()
    r["xxx"]         对象后边加个中括号就会去执行__getitem__方法,中括号里边可以自定义添加内容,对象会把内容传给item,print(item),就会把item接收到的内容给输出出来。
    __setitem__
    
    class Foo:
        def __setitem__(self,key,value):
            print(key,value)
    r = Foo()
    r["xxx"] = 123
    
    
    对象后边加中括号就会执行__setitem__方法,一个key,一个value
    __delitem__
    
    
    class Foo:
        def __delitem__(self,key):
             print(key)
    r = Foo()
    del r["xxx"]         #执行__delitem__方法,删除key
    class Foo:
        def __iter__(self):
             yield 1
             yield 2
             yield 3
    obj = Foo()
    for i in obj:
        print(i)
    #执行for循环对象时,自动会执行对象的iter方法,生成器

     

     

  • 相关阅读:
    翻转数组
    股神
    刮刮卡兑换
    军训队列
    击鼓传花
    上台阶
    @Service空指针异常 -JUNIT测试
    insert 配置信息
    url地址重叠
    shop = mapper.readValue(shopStr, Shop.class); shop=null的问题
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/5554263.html
Copyright © 2020-2023  润新知