PythonÖÐreactor,factory,protocolµÄѧϰ±Ê¼Ç
PythonÖÐreactor,factory,protocolµÄѧϰ±Ê¼Ç
×îΪ¼òµ¥µÄÇé¿öÏ£¬³ýÁËÁ˽âÇåreactorµÄ¼òµ¥Ê¹Óã¬Ä㻹ҪÁ˽âProtocolºÍFactory¡£ËüÃÇ×îÖÕ¶¼»áÓÉreactorµÄÕìÌý½¨Á¢ºÍrunÀ´Í³Ò»µ÷¶ÈÆðÀ´¡£
½¨Á¢·þÎñÆ÷µÄµÚÒ»¸öÒª½â¾öµÄÎÊÌâ¾ÍÊÇ·þÎñÓëÍâ½çµÄ½»Á÷ÐÒé¡£ÐÒéµÄ¶¨ÒåÔÚtwistedÖÐÊÇͨ¹ý¼Ì³Ðtwisted.internet.protocol.ProtocolÀàÀ´ÊµÏֵġ£ÔÚÐÒéÖÐÄã¿ÉÒÔ¶¨ÒåÁ¬½Ó¡¢Êý¾Ý½ÓÊÕ¡¢¶Ï¿ªÁ¬½ÓµÈһϵÁеÄʼþÈç¹û½øÐÐÏìÓ¦¡£µ«ÊǶÔÓÚËùÓÐÁ¬½ÓÉÏÀ´µÄÐÒéµÄ½¨Á¢¡¢³Ö¾ÃÅäÖÃÊý¾ÝµÄ´æ´¢ÕâÑùµÄÄÚÈݲ¢²»»á±£´æÔÚÐÒéÖС£
³Ö¾ÃÅäÖÃÊý¾ÝµÄ´æ´¢Í¨³£¶¼»á±£´æÔÚ¹¤³§Àï¡£
¹¤³§µÄ¶¨ÒåÔÚtwistedÖÐÊÇͨ¹ý¼Ì³Ðtwisted.internet.protocol.FactoryÀàÀ´ÊµÏֵġ£twistedÌṩÁËȱʡµÄ¹¤³§ÊµÏÖ×îΪÆÕͨµÄÐèÇó¡£Ëü»áʵÀý»¯Ã¿¸öÐÒ飬²¢ÇÒͨ¹ýÉèÖÃÿ¸öÐÒéÖÐfactoryÊôÐÔÀ´Ê¹ÐÒé¿ÉÒÔʹÓõ½Ëü×Ô¼º£¬×öÕâ¸öÉèÖõÄ×÷ÓþÍÊÇÈÃÐÒéÔÚ½øÐд¦ÀíÁ¬½ÓÊý¾Ýʱ¿ÉÒÔʹÓõ½¹¤³§Öд洢µÄ³Ö¾ÃÅäÖÃÊý¾Ý¡£¹¤³§µÄÆô¶¯ÊÇÐèÒªreactorÕæÊµµÄ½¨Á¢ÕìÌý²¢Æô¶¯²Å¿ÉÒÔʵÏֵġ£
reactorÕìÌýµÄ½¨Á¢¿ÉÒԲο¼ twisted.internet.interfaces.IReactorTCP.listenTCP¡£ÕâʱÎÒÃÇÏÈֻ˵½¨Á¢TCP·þÎñÆ÷µÄÕìÌý£¬Èç¹ûÄãÐèÒªÆäËüÖÖÀàµÄÕìÌý½¨Á¢²Î¿¼IReactor*.listen*ϵÁÐAPI¡£
×ܽáһϣ¬ÎÒÃÇÊéдһ¸ötwistedµÄDaemon£¬ÊµÖÊÉÏ»á¹Ø×¢Èý¸ö²ã´ÎµÄ¶ÔÏó¡£ËüÃÇ»¥Ïà¿ÉÅäÖ㬿ɶÀÁ¢¿ª·¢£¬Ö»ÐèҪͨ¹ý¼òµ¥µÄµ÷ÓÃÅäÖþͿɽáºÏʹÓᣵÚÒ»²ã´Î¾ÍÊÇÕìÌýµÄ½¨Á¢¡¢¹¤³§µÄ³õʼ»¯¡¢·þÎñÆ÷µÄÔËÐУ¬ËüÐèÒªreactorµÄ¿ª·¢¡£µÚ¶þ¸ö²ã´Î¾ÍÊÇ·þÎñµÄ³õʼ»¯¡¢Óû§Á¬½ÓµÄ½¨Á¢¡¢³Ö¾ÃÅäÖÃÊý¾ÝµÄ´æ´¢¡¢ÐÒéµÄʵÀý»¯£¬ËüÐèÒªfactoryµÄ¿ª·¢¡£µÚÈý¸ö²ã´Î¾ÍÊÇÓû§Á¬½Ó½¨Á¢ºóµÄʼþ´¦Àí£¬Õâ¾ÍÐèÒªprotocolµÄ¿ª·¢ÁË¡£
-------------------------------------------------------------------------------------------------------------------------
ÉÏÃæÊÇÒýÓñðÈ˵ϰ£¬ÏÂÃæÊÇ×Ô¼ºµÄѧϰ£º
Ò»¡¢
protocol£ºÄÚ²¿ÊµÏÖµÄÖ÷ÒªÊÇÁ¬½ÓÔÚͨÐÅʱµÄ¶¯×÷£»
ÄÚ²¿ÓÐtransport£¬¿É½øÐÐwrite(), getpeer()(host,port)
&
Ïà¹ØÎĵµ£º
Python µÄÒì³£´¦Àí»úÖÆ
Python´úÂë
try:
raise Exception("a", "b")
except Exception,e:
print e
finally:
print "final"
('a', ......
±¾ÏµÁÐÎÄÕ²»»á½éÉÜÖîÈç°²×°PythonÖ®ÀàµÄÎÊÌ⣬Ҳ²»Ïëд³É¹ØÓÚPythonµÄ½Ì¿ÆÊé¡£ÊÂʵÉ϶ÔÓÚ³ÌÐòÔ±£¬Python¸ù±¾²»ÐèÒªºñºñµÄÈëÃÅÊé¼®£¬ÊÖ±ßÒ»±¾PythonÎĵµ¼´¿É¡£ÒòΪÄã»á·¢ÏÖ£¬ÊÔ×ÅÖ´ÐÐÒ»¶ÎÄãÈÏΪ¿ÉÄܳɹ¦µÄ´úÂ룬Python»áÏñÆÚÍûµÄÄÇÑùÔËÐС£
ÎÄÕ½«»á½éÉÜÁ½Î»Ö÷È˹«£ºÐ¡²ËºÍС°×£¬Á½ÈËÊÇ´óÈýѧÉú£¬Ñ§Ï°¹ýCºÍJava¿Î³Ì¡£±¾Îļ ......
import win32com.client
store = win32com.client.Dispatch('CAPICOM.Store')
# ´ò¿ªÖ¤Êé´æ´¢Çø
# 2 -> CAPICOM_CURRENT_USER_STORE
# 0 -> CAPICOM_STORE_OPEN_READ_ONLY
store.Open(2, "My", 0)
# ²éÕÒÓÐЧ֤Êé
# 12 -> CAPICOM_CERTIFICATE_FIND_KEY_USAGE
# 0x00000080 -> CAPICOM_DIGITAL_SIGNATU ......
ÕâÁ½ÌìÔÚѧϰpythonÓïÑÔ£¬Ò²Ñ§×ÅдÁ˸öͨѶ²¾£¬Á·Ï°ÈëÃÅÏ£¡
¹¦ÄܰüÀ¨ÒÔÏ£º
1¡¢Ôö¼ÓÒ»Ìõ¼Ç¼
2¡¢É¾³ýÒ»Ìõ¼Ç¼
3¡¢ÐÞ¸ÄÒ»Ìõ¼Ç¼
4¡¢²éѯһÌõ¼Ç¼
5¡¢ÏÔʾÕû¸öͨѶ²¾
6¡¢°ïÖúÌáʾ
7¡¢°æ±¾ÏÔʾ
8¡¢Í˳öµÈ
Ê×ÏȽ¨Á¢Ò»¸öPersonÀ࣬¼´Person.pyÎļþ£¬ÓÃÀ´±£´æÁªÏµÈ˼Ǽ£º
class Person:
def __init__(self, nam ......
Python ÊÇÃâ·ÑµÄ½âÊÍÐÔÓïÑÔ£¬¾ßÓÐÃæÏò¶ÔÏóµÄÌØÐÔ¡£¿ÉÒÔÔËÐÐÔÚ¶àÖÖ²Ù×÷ϵͳ֮ÉÏ£¬Python¾ßÓÐÇåÎúµÄ½á¹¹£¬¼ò½àµÄÓï·¨ÒÔ¼°Ç¿´óµÄ¹¦ÄÜ¡£Python¿ÉÒÔÍê³É´ÓÎı¾´¦Àíµ½ÍøÂçͨÐŵȸ÷ÖÖ¹¤×÷£¬python×ÔÉíÒѾÌṩÁË´óÁ¿µÄÄ£¿éÀ´ÊµÏÖ¸÷ÖÖ¹¦ÄÜ£¬³ý´ËÒÔÍ⻹¿ÉÒÔʹÓÃC/C++À´À©Õ¹Python£¬ÉõÖÁ»¹¿ÉÒÔ½«PythonǶÈëµ½ÆäËûÓ ......