获取类和对象中所属成员的信息
类:类名.__dict__ 对象:对象名.__dict__类成员的操作:
成员属性:(和变量一样) 访问 类名.成员属性名 修改 类名.成员属性名 = 新值 删除 del 类名.成员属性名 添加 类名.成员属性名 = 值成员方法:
访问 类名.方法名() 修改 类名.方法名 = 新的函数 删除 del 类名.方法名 添加 类名.新方法名 = 函数(也可以是lambda表达式) 对象成员的操作:成员属性: 访问 对象.成员属性名 修改 对象.成员属性名 = 新值 添加 对象.成员属性名 = 值 删除 del 对象.成员属性名 (必须是属于当前对象的成员才可以)成员方法:
访问 对象.成员方法名() 修改 对象.成员方法名 = 新的函数 添加 对象.成员方法名 = 函数 删除 del 对象.成员方法名注意事项:
1.实例化对象的时候通常情况下类中的成员不会在对象中复制一份 2.访问对象成员的时候,只要没有该成员,对象会向实例化他的类查找。 3.对象成员的添加和修改,都只会影响当前对象本身,不会影响类和其他对象 4.删除对象成员时候,必须是该对象自身的成员才可以删除,不可以删除类和其他对象~
类和对像成员操作实例
1 #电脑类 2 class Computer: 3 #成员属性 4 cpu = 'i7-7890' 5 memory = '32G' 6 disk = '1T' 7 display = '120Hz' 8 color = '黑色' 9 10 #成员方法 11 #播放电脑 12 def play_movie(self): 13 print('电脑播放电影中') 14 15 #播放音乐 16 def play_music(self): 17 print('电脑播放音乐中') 18 19 #玩游戏 20 def play_game(self): 21 print('正在使用电脑玩游戏') 22 23 24 #实例化类 获取电脑的对象 25 pc = Computer() 26 27 #对于类的相关操作(很少使用) 28 #检测类中的成员 29 print(Computer.__dict__) 30 31 #成员属性------------------------------------------------- 32 33 #访问 34 print(Computer.cpu) 35 #输出结果:i7-7890 36 print(Computer.memory) 37 #输出结果:32G 38 39 #修改 40 41 print(Computer.__dict__) #类.__dict__:以字典结构获取类所有成员 42 #输出结果:{...略... 'color': '黑色', ...略...} 43 Computer.color = '灰色'#相当于变量重新赋值 44 print(Computer.__dict__) 45 #输出结果:{...略... 'color': '灰色', ...略...} 46 47 #添加 48 print(Computer.__dict__) 49 #输出结果:{...略... } 50 Computer.keyboard = '机械键盘' 51 print(Computer.__dict__) 52 #输出结果:{...略... 'keyboard': '机械键盘'} 53 54 55 #删除 56 print(Computer.__dict__) 57 #输出结果:{...略... } 58 del Computer.cpu 59 print(Computer.__dict__) 60 #输出结果:{...略... -->少了cpu项} 61 62 63 #成员方法------------------------------------------- 64 65 #访问 66 Computer.play_movie(None) 67 68 #添加(work) 不推荐使用 69 #定义一个函数 70 def work(): 71 print('使用电脑办公中') 72 #输出结果:电脑播放电影中 73 Computer.work = work #也可以使用lambda表达式添加 74 print(Computer.__dict__) 75 #输出结果:{...略... } 76 77 #修改 78 Computer.play_movie(None) 79 #输出结果:电脑播放电影中 80 Computer.play_movie = lambda : print('电影暂停中') 81 #输出结果:电影暂停中 82 Computer.play_movie() 83 84 #删除 85 print(Computer.__dict__) 86 #输出结果:{...略... } 87 del Computer.play_movie #一定不要加括号。 88 print(Computer.__dict__) 89 #输出结果:{...略... -->少了 play_movie 方法} 90 91 #============================================= 92 #对于对象的相关操作 93 #检测对象中成员 94 print(pc.__dict__) 95 96 #成员属性的操作 97 98 #访问 99 print(pc.cpu)100 #输出结果:i7-7890101 print(pc.disk)102 #输出结果:1T103 104 #修改105 print(pc.__dict__)106 #输出结果:{}107 108 #pc.cpu = 'i9-7890'109 print(pc.__dict__)110 #输出结果:{'cpu': 'i9-7890'}111 112 113 #添加114 print(pc.__dict__)115 #输出结果:{}116 117 pc.closth = '钢化膜'118 print(pc.__dict__)119 #输出结果:{'closth': '钢化膜'}120 121 122 #删除123 print(pc.__dict__)124 #输出结果:{}125 del pc.cpu #不可以删除不属于当前对象的成员126 #添加一个成员127 pc.closth = '钢化膜'128 print(pc.__dict__)129 #输出结果:{'closth': '钢化膜'}130 del pc.closth131 print(pc.__dict__)132 #输出结果:{}133 134 135 #成员方法的操作136 137 #访问138 pc.play_movie() #和类访问不同,self会自动传入一个数据139 #输出结果:电脑播放电影中140 #添加141 print(pc.__dict__)142 #输出结果:{}143 pc.www = lambda : print('电脑上网中')144 print(pc.__dict__)145 #输出结果:{'www':at 0x00000169F5EBD378>}146 147 #修改148 pc.play_game()149 #输出结果:正在使用电脑玩游戏150 pc.play_game = lambda :print('LOL中~')151 pc.play_game()152 #输出结果:LOL中~153 print(pc.__dict__)154 #输出结果:{'play_game': at 0x0000029C9154D378>}155 156 #删除157 #添加一个方法158 pc.input = lambda : print('电脑打字中~')159 print(pc.__dict__)160 #输出结果:{'input': at 0x0000013D3B02D378>}161 del pc.input162 print(pc.__dict__)163 #输出结果:{}