zoukankan      html  css  js  c++  java
  • python笔记62

    前言

    如果在类中定义了__getitem__()方法,那么他的实例对象(假设为P)就可以这样P[key]取值。
    当实例对象做P[key]运算时,就会调用类中的__getitem__()方法。

    __getitem__方法

    A类的实例A()可以通过点的方式获取到属性

    # 作者-上海悠悠 QQ交流群:717225969 
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    
    class A(object):
    
        count = 0
    
        def __init__(self):
            self.name = "yoyo"
            self.age = 18
    
        def start(self):
            print("start1111111")
    
    a = A()
    print(a.count)
    print(a.name)
    

    如果我们想实现a['name']这种方式取值,在类中定义__getitem__()方法就可以实现

    # 作者-上海悠悠 QQ交流群:717225969 
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    
    class A(object):
    
        count = 0
    
        def __init__(self):
            self.name = "yoyo"
            self.age = 18
    
        def start(self):
            print("start1111111")
    
        def __getitem__(self, item):
            return object.__getattribute__(self, item)
    
    a = A()
    print(a.count)
    print(a.name)
    # 通过[key]语法调用属性
    print(a['count'])
    print(a['age'])
    print(a['start'])
    print(a['start']())
    

    运行结果

    0
    yoyo
    0
    18
    <bound method A.start of <__main__.A object at 0x0000027CC08D96D8>>
    start1111111
    None
    
  • 相关阅读:
    07 JavaWeb
    06 XML编程(CRUD)
    05 XML
    04 DOM一窥
    03 Javascript初识
    02 CSS/javaScript
    01 HTML基础
    09_IO流
    08_集合概述
    07_基本数据类型和包装类
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15161586.html
Copyright © 2011-2022 走看看