Are Java and C# as "customizable" as Python?
<p>At the time of asking, I am using Python most of the time, and I have not used Java or C# much, although I have a (basic) idea of how they work. I am thinking to possibly start to use Java or C# more, but it seems from the little I know about them that they aren't as "customizable" as Python, but I may be wrong.</p>

<p>By "customizable" (there is probably better phrases to use to describe what I mean, but I can't think of anything better :-) ), I mean things in Python like:</p>

<ul>
<li>Dynamic object attributes definition (using <code>__getattr__</code>, etc.)</li>
<li>Import hooks (so code modules can be imported from any type of media, not just files which match certain sets of criteria)(see <a href="http://www.python.org/dev/peps/pep-0302/" rel="nofollow">PEP 302 -- New Import Hooks</a>, and <a href="http://stackoverflow.com/questions/960832/pep-302-example-new-import-hooks">this Stackoverflow question</a>)</li>
<li>Operator overloading (I think that C# and Java both have this, but it is another example)</li>
<li>Subclassing of built in types</li>
<li>Mappings and sequence simulation using <code>__getitem__</code>, <code>__setitem__</code>, and <code>__delitem__</code>, etc., "magic" methods</li>
</ul>

<p>So, I am wondering if there are (at least some of) these "customization" kinds of things in Java and C#, and if not, are there functionally similar or equivalent ways to do these kinds of things?</p>
