楼主: 
kdjf (我抓得到什么呢?)   
2020-12-18 01:34:54我在override __setattr__时不知道为什么没办法assing某个变量
错误讯息也很怪
>>> class pin(int):
...  def __new__(cls,pin,inv,oc,out):
...   i=int.__new__(cls,1<<pin)
...   i.pin=pin
...   i.inv=inv<<pin
...   i.oc=oc<<pin
...   i.out=out<<pin
...   return(i)
...
>>> class port():
...  OC=0
...  OUT=0
...  def __setattr__(self,name,value):
... #  self.OC=value.oc
... #  self.OUT=value.out
...   print(value.out)
...   self.OC=value.out
...   print(value.out)
...   super().__setattr__(name, value)
...
>>> P=port()
>>> M=pin(pin=0,inv=1,oc=0,out=1)
>>> P.M=M
1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 8, in __setattr__
  File "<stdin>", line 7, in __setattr__
AttributeError: 'int' object has no attribute 'out'
>>>
看起来是value.out不存在,但是print(value.out)是正常的?
还是其实是super那行报的错?