Самый элегантный способ добиться того, что вы ищете в Objective-C с подклассами NSObject
, это переопределить метод NSObject
description
.
Например (если ваш класс имеет свойство, называемое propertyX):
-(NSString *)description
{
return [NSString stringWithFormat:@"",
[self objectID], [self propertyX].x, [self propertyX].y];
}
Реализация description
по умолчанию description
будет просто возвращать адрес памяти, указанный для объекта, например:
NSLog(@"%@", self);
2015-06-15 14: 20: 30.123 AppName [...] myCustomObject: 0x000000>
blockquote>
Однако, переопределив этот базовый метод класса, как показано выше, вы вы можете настроить это поведение, и журнал будет выглядеть следующим образом:
2015-06-15 14: 20: 30.123 AppName [...] myCustomObject: 0x000000 someProperty, Свойство: blah, blah>
blockquote>Существует хороший учебник, в котором обсуждаются следующие здесь .
Вы могли сделать несколько вещей:
Это - быстрая небольшая вещь, которая показывает оба
import urllib2
#redirect_handler = urllib2.HTTPRedirectHandler()
class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_302(self, req, fp, code, msg, headers):
print "Cookie Manip Right Here"
return urllib2.HTTPRedirectHandler.http_error_302(self, req, fp, code, msg, headers)
http_error_301 = http_error_303 = http_error_307 = http_error_302
cookieprocessor = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(MyHTTPRedirectHandler, cookieprocessor)
urllib2.install_opener(opener)
response =urllib2.urlopen("WHEREEVER")
print response.read()
print cookieprocessor.cookiejar
urllib2.urlopen
вызовы build_opener()
, который использует этот список классов обработчика:
handlers = [ProxyHandler, UnknownHandler, HTTPHandler,
HTTPDefaultErrorHandler, HTTPRedirectHandler,
FTPHandler, FileHandler, HTTPErrorProcessor]
Вы могли попытаться звонить urllib2.build_opener(handlers)
сами со списком, который опускает HTTPRedirectHandler
, затем звоните open()
метод на результате для открытия URL. Если Вам действительно не нравятся перенаправления, Вы могли бы даже позвать urllib2.install_opener(opener)
своего собственного новичка неперенаправления.
Это кажется, что Ваша настоящая проблема состоит в том, что urllib2
не делает cookie путем, Вы хотели бы. См. также , Как использовать Python, чтобы войти в веб-страницу и получить cookie для более позднего использования?
Этот вопрос задали прежде здесь .
РЕДАКТИРОВАНИЕ: , Если необходимо иметь дело с изворотливыми веб-приложениями, необходимо, вероятно, испытать , механизируют . Это - большая библиотека, которая моделирует веб-браузер. Можно управлять перенаправлением, cookie, обновлениями страницы... Если веб-сайт не положится [в большой степени] на JavaScript, то Вы будете ладить очень приятно с, механизируют.