Suppose I have a class with a string instance attribute. Should I initialize this attribute with \"\" value or None? Is either
Since both None and "" are false, you can do both. See 6.1. Truth Value Testing.
Edit
To answer the question in your edit: No, you can assign a different type.
>>> a = "" >>> type(a) >>> a = 1 >>> type(a)