<gh_stars>1000+
class C:
    def f():
        pass

# del a class attribute

del C.f
try:
    print(C.x)
except AttributeError:
    print("AttributeError")
try:
    del C.f
except AttributeError:
    print("AttributeError")

# del an instance attribute

c = C()

c.x = 1
print(c.x)

del c.x
try:
    print(c.x)
except AttributeError:
    print("AttributeError")
try:
    del c.x
except AttributeError:
    print("AttributeError")

# try to del an attribute of a built-in class
try:
    del int.to_bytes
except (AttributeError, TypeError):
    # uPy raises AttributeError, CPython raises TypeError
    print('AttributeError/TypeError')

class C:
    def f():
        pass

# del a class attribute

del C.f
try:
    print(C.x)
except AttributeError:
    print("AttributeError")
try:
    del C.f
except AttributeError:
    print("AttributeError")

# del an instance attribute

c = C()

c.x = 1
print(c.x)

del c.x
try:
    print(c.x)
except AttributeError:
    print("AttributeError")
try:
    del c.x
except AttributeError:
    print("AttributeError")

# try to del an attribute of a built-in class
try:
    del int.to_bytes
except (AttributeError, TypeError):
    # uPy raises AttributeError, CPython raises TypeError
    print('AttributeError/TypeError')
# del a class attribute # del an instance attribute # try to del an attribute of a built-in class # uPy raises AttributeError, CPython raises TypeError