zoukankan      html  css  js  c++  java
  • 面向对象,二

    面向对象的进阶:

          成员:

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

               方法        静态方法(无需使用对象封装的内容),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方法,生成器

     

     

  • 相关阅读:
    Ansible facts
    K8S基础概念
    Ansible CMDB
    Docker 核心技术与实现原理
    如何在 Centos7 中使用阿里云的yum源
    一篇文全面了解DevOps:从概念、关键问题、兴起到实现需求
    关于操作stream流
    service not available now, maybe disk full, CL: 0.95 CQ: 0.95 INDEX: 0.95, maybe your broker mach
    AOP的底层实现,动态代理和cglib代理
    模拟浏览器加载静态资源
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/5554263.html
Copyright © 2011-2022 走看看