Skip to content
Snippets Groups Projects
Select Git revision
  • e563593e87be305bcdc20ded3ec00b3f6f80da9e
  • master default protected
  • reboot-to-bootloader
  • fix-off-by-one
  • genofire/ble-personal_state
  • ios-workarounds
  • schneider/maxim-sdk-update
  • rahix/simple_menu
  • ch3/splashscreen
  • koalo/bhi160-works-but-dirty
  • koalo/wip/i2c-for-python
  • renze/safe_mode
  • renze/hatchery_apps
  • schneider/fundamental-test
  • koalo/factory-reset
  • msgctl/gfx_rle
  • msgctl/faultscreen
  • msgctl/textbuffer_api
  • schneider/bonding
  • schneider/bootloader-update-9a0d158
  • schneider/bsec
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
  • bootloader-v1
  • v0.0
29 results

fix-multi-decl.py

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    object_new.py 850 B
    # object.__new__(cls) is the only way in Python to allocate empty
    # (non-initialized) instance of class.
    # See e.g. http://infohost.nmt.edu/tcc/help/pubs/python/web/new-new-method.html
    # TODO: Find reference in CPython docs
    try:
        # If we don't expose object.__new__ (small ports), there's
        # nothing to test.
        object.__new__
    except AttributeError:
        import sys
        print("SKIP")
        sys.exit()
    
    class Foo:
    
        def __init__(self):
            print("in __init__")
            self.attr = "something"
    
    
    o = object.__new__(Foo)
    #print(o)
    print(hasattr(o, "attr"))
    print(isinstance(o, Foo))
    o.__init__()
    #print(dir(o))
    print(hasattr(o, "attr"))
    print(o.attr)
    
    # should only be able to call __new__ on user types
    try:
        object.__new__(1)
    except TypeError:
        print("TypeError")
    try:
        object.__new__(int)
    except TypeError:
        print("TypeError")