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


Log in to reply
 

Looks like your connection to Pycom Forum was lost, please wait while we try to reconnect.