Функция является просто классом с __call__
метод, таким образом, можно сделать
hasattr(obj, '__call__')
, Например:
>>> hasattr(x, '__call__')
True
>>> x = 2
>>> hasattr(x, '__call__')
False
, Который является "лучшим" способом сделать его, но в зависимости от того, почему необходимо знать, если это является вызываемым или отмечает, Вы могли бы просто поместить его в try/execpt блок:
try:
x()
except TypeError:
print "was not callable"
спорно, является ли попыткой/кроме больше Python'y, чем выполнение if hasattr(x, '__call__'): x()
.. Я сказал бы hasattr
, более точно, начиная с Вас, привычка случайно ловит неправильный TypeError, например:
>>> def x():
... raise TypeError
...
>>> hasattr(x, '__call__')
True # Correct
>>> try:
... x()
... except TypeError:
... print "x was not callable"
...
x was not callable # Wrong!
Флаг является частью заголовка изображения, поэтому вам необходимо изменить его с помощью editbin.
editbin /LARGEADDRESSAWARE <your exe>
Используйте dumpbin / headers
и проверьте наличие Приложение может обрабатывать большие (> 2 ГБ) адреса
, чтобы узнать, установлен ли флаг.
From what I can tell you have to use the editbin utility shown in the existing answer. There does not appear to be any way to set the flag using Visual Studio .NET, it looks like they encourage people to compile for 64 bit if possible instead of using the flag
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=93771