day19-3个双下item方法
#使用双下item方法来实现属性的增删改查:
# 查:__getitem__ 增改:__setitem__ 删除: __delitem__
class Goods:
def __init__(self,name):
self.name = name #{'name':'apple'},self.__dict__[key] = value,
# self.__dict__['name'] = 'apple'
def __getitem__(self,key):
#if hasattr(self,key):如果self里面有key才返回。
# return self.__dict__[key]
return self.__dict__[key]
def __setitem__(self,key,value):
self.__dict__[key] = value #相当于dic[key]=value,实现字典的增改。
def __delitem__(self,key):
del self.__dict__[key] g = Goods('apple') #g是对象也是字典。
print(g['name']) #apple,g['name']启动__getitem__方法。查看属性。
print(g.name) #apple g['price'] = 8 #启动__setitem__方法来增加属性。
print(g['price']) #
print(g.price) # g.__dict__['name'] = 'pear'
print(g['name']) #pear,启动__setitem__方法来修改属性。 del g['name'] #启动__delitem__来删除属性。
print(g.__dict__) #{'price': 8}
day19-3个双下item方法的更多相关文章
- Python - 面向对象编程 - 魔术方法(双下划线方法)
什么是魔术方法 在Python中,所有以 __ 双下划线包起来的方法,都统称为 Magic Method 魔术方法,也叫双下划线方法 有哪些重要的魔术方法? __new__ https://www.c ...
- python面向对象双下划线方法与元类
目录 双下划线方法(__) 元类简介 产生类的两种表现形式 元类的基本使用 元类进阶操作 __new__方法 双下划线方法(__) 面向对象中的双下方法也有一些人称之为是魔法方法,有些双下方法不需要刻 ...
- python类中的双下划线方法
__getitem__,__setitem__和__delitem__ 实现了对象属性的字典化操作. class Person: def __init__(self, name, age, hobby ...
- python_面向对象——双下划线方法
1.__str__和__repe__ class Person(object): def __init__(self,name,age): self.name = name self.age = ag ...
- Python进阶-XVIV 类的内置方法:__str__ 、__repr__、析构函数(__del__)、双下的call,eq,new,hash 以及item相关的三个方法
类的内置方法 它与内置函数有紧密的联系,有的内置函数就是调用的内置方法. 在顶级父类obj中有: 两个双下方法 obj.__str__ str(obj) obj.__repr__ repr(obj) ...
- day27:反射和双下方法
1, # 面向对象的三大特性:继承,多态和封装 # 继承: # 单继承: **** # 父类(超类,基类) # 子类(派生类) 派生方法和派生属性 # 子类的对象在调用方法和属性:先用自己的,自己没有 ...
- Python面向对象 | 双下方法
定义:双下方法是特殊方法,他是解释器提供的.由双下划线+方法名+双下划线 .它具有特殊意义的方法,双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更 ...
- Python 入门 之 双下方法
Python 入门 之 双下方法 1.双下方法 定义:双下方法是特殊方法,它是解释器提供的 由双下划线加方法名加双下划线 方法名的具有特殊意义的方法,双下方法主要是python源码程序员使用的,我 ...
- python类中方法加单下划线、双下划线、前后双下滑线的区别
首先看一段代码: class Foo(): def __init__(self): print "__init__ method" def public_method(self): ...
随机推荐
- DQL多表查询
DQL多表查询 一.多表查询实现多个表之间查询数据 1.交叉连接笛卡尔积:A表中的每一行匹配B表中的每一行基本结构:select [数据库名1.]表名1,属性名1,......, [数据库名.]表名. ...
- SpringBootStarter种类
Name Description spring-boot-starter 核心starter, 包括auto-configuration支持, logging和YAML 支持 spring-boot- ...
- 调用约定__stdcall / __cdecl
__cdecl与__stdcall这两种调用约定之间的主要差别在于由谁来执行对参数的清理工作. 如果是__cdecl,那么主调函数将负责执行清理工作,如果是__stdcall那被调函数将负责执行清理. ...
- .pcd格式点云文件的显示
利用pcl_viewer工具pcl_viewer rtabmap_cloud.pcd
- 剑指offer第40题
package com.yan.offer; /** * 题目描述: * * 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. * * @author Ya ...
- c语言中指向整型指针的指针的理解
/************************************************************************* > File Name: ptr_ptr_i ...
- nfs自动挂载
服务器端 /etc/exports /mnt *(rw,sync,no_root_squash,anonuid=500,anongid=500)systemctl restart nfs 客户端 挂载 ...
- lemon
这本是一个技术博客网站 我却用来记录关于六月 就好像特别才不配你的特别一样 就好像以后要特别喜欢cos一样 就好像再特别的六月也会过渡到七月一样
- Jmeter接口测试之案例实战
Jmeter是apacheg公司基于Java开发的一款开源的压力测试工具,安装Jmeter之前先安装Jdk,具体JDK安装和环境变量配置自行百度.这里不概述. 1.添加线程组 测试计划->添加- ...
- 计蒜客 数独(DFS)
蒜头君今天突然开始还念童年了,想回忆回忆童年.他记得自己小时候,有一个很火的游戏叫做数独.便开始来了一局紧张而又刺激的高阶数独.蒜头君做完发现没有正解,不知道对不对? 不知道聪明的你能否给出一个标准答 ...