#! /usr/bin/env python
#! -*- cording:utf-8 -*-
#
# class C:
# def __getattribute__(self, name):
# print("getattribute")
# return super().__getattribute__(name)#super默认找父类
# def __getattr__(self, name):
# print("getattr")
# def __setattr__(self, name, value):
# print("setatter")
# super().__setattr__(name,value)
# def __delattr__(self, name):
# print("delattr")
# super().__delattr__(name)
# c=C()
# c.x
#
# c.x=1
class rectangle:
def __init__(self,width=0,height=0):
self.width=width
self.height=height
def __setattr__(self, name, value):
if name=="square":
self.width=value
self.height=value
else:
super().__setattr__(name,value)
def getArea(self):
return self.width*self.height
r1=rectangle(4,5)#实例化类
print(r1.getArea())
r1.square=10#说明赋予了一个square属性,则直接把square赋值给value,执行操作,就是正方形
print(r1.getArea())
print(r1.__dict__)#直接打印出了字典属性
![]()