次のように、オブジェクトにはメソッドを後付けできます(できてしまいます)

class C:
....pass

x = C()
x.fn = lambda p: print(p)

しかし、次のようなことは不可能なようです

x = 1
x.fn = lambda p: print(p) # no attr "fn"

後者のように、後付けができないようにする方法はあるのでしょうか
何か大きな勘違いをしている気もしますが…