Python vs Micro - is this issue or imprementation detail



  • this sample work ok on normal python 3
    but not work on micropython

    class A:
      def __init__(self):
        pass
        
      @property  
      def Test(self):
        return 'A'
        
    class B(A):
      def __init__(self):
        super().__init__()
        
      @property  
      def Test(self):
        return super().Test + 'B'
        
    a=A()
    b=B()
     
    print(a.Test)
    print(b.Test)
    

    on normal python result is

    A
    AB
    

    on micro - error:

    A
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/flash/lib/test.py", line 21, in <module>
      File "/flash/lib/test.py", line 15, in Test
    TypeError: unsupported types for __add__: 'property', 'str'
    >>>
    

    problematic line is

    return super().Test + 'B'
    

    should i report this issue or is this "implementation detail" difference?



  • @RobTuDelft
    Thanks you for confirmation and the link



  • MicroPython does not implement complete CPython object data model, but only a subset of it. Advanced usages of multiple inheritance, new method may not work.

    and other differences



Pycom on Twitter