ÔÎÄ£ºhttp://www.klipdas.com/blog/?p=python-decorator
python×°ÊÎÆ÷½éÉÜ
Python 2.2ÖÐÒýÈëµÄ classmethod() ºÍ staticmethod() ÄÚÖú¯Êý£¬Äã¿ÉÒÔÕâÑùµ÷ÓÃclassmethod()£º
class A:
def foo(self, y):
print y
foo = classmethod(foo)
Ò²¿ÉÒÔÕâÑù£º
class A:
@classmethod
def foo(self, y):
print y
ËäÈ»classmethodÊÇÄÚÖú¯Êý£¬µ«ËüºÍÆÕͨµÄº¯ÊýûÓÐÁ½Ñù£¬Òò´ËÄãÒ²¿ÉÒÔ´´½¨×Ô¼ºµÄº¯Êýת»¯Âß¼£¬È磺
def mydecorator(func):
print 'mydecorator was called.'
func.name = 'myfun'
return func
¸ÃÐÞÊÎÆ÷½«ÉÔ΢ÐÞ¸ÄÁËÔº¯ÊýµÄÂß¼£ºÊ×ÏÈ´òÓ¡Ò»¶ÎÎÄ×Ö“mydecorator was called.”£¬È»ºó¸øÔº¯ÊýÌí¼ÓÁËÒ»¸önameÊôÐÔ£¬ÊôÐÔֵΪ"myfun"£¬Ö®ºóÔÙ½«º¯Êý·Å»Ø£¬Ê¹Ó÷½·¨ºÍµ÷Óýá¹ûÈçÏ£º
class A:
@mydecorator
def foo(self, y):
print y
if __name__ == '__main__':
a = A()
a.foo(1)
ÔËÐнá¹ûΪ£º
mydecorator was called.
1
ÒÔÉϼò½éÎÒÃÇ¿ÉÒÔ´óÖÂÁ˽âÁËpython×°ÊÎÆ÷µÄ×÷Óá£
×°ÊÎÆ÷µÄµ÷ÓÃÂß¼
ÈçÉÏÒ»½ÚµÄʾÀýÖÐÎÒÃÇ·¢ÏÖ£¬Ê¹ÓÃ×°ÊÎÆ÷µÄʱºòÊÇ@mydecorator£¬»òÕßÊÇfoo=mydecorator(foo)£ ......
Ò»¸öÓÐȤµÄÍøÕ¾£º
http://www.pythonchallenge.com/
¼¯ÓéÀÖÓëѧϰÓÚÒ»Ì壬ÔÚ¿ª¶¯ÄԽ¹ØµÄ¹ý³ÌÖУ¬²»µ«À©Õ¹ÁË˼ά£¬»¹¶ÔPython¼ÓÉîÁËÀí½â¡£
Ò»¹²33¹Ø£¬Ã¿´³¹ýÒ»¹Ø¶¼¿ÉÒÔÔÚÌáʾϲ鿴×÷Õ߸ø³öµÄSolution¡£
µÚ0¹Ø£¨Ö¸µ¼¹Ø£©£º
³öÏÖÒ»·ù»Ã棬ÉÏÃæд×Å2**38£¬½ÌÄãÈçºÎ½øÈëÏÂÒ»¹Ø¡£
ͨ¹ýPython¿Í»§¶Ë£¬¿ÉÒÔ¼òµ¥¼ÆËã³ö2**38 = 274877906944
ÄÇô°´ÕÕÌáʾֻҪ½«¸Ã¹ØÍøÖ·ÖÐ0.htm¸ÄΪ274877906944.html ¼´¿É
µÚ1¹Ø£º×Ö·ûת»»
ͼƬÉϸø³öÁËÈý¶Ô×Öĸ“K->M, O->Q, E->G"£¬Í¨¹ý·ÖÎöÖªµÀÕâÊÇÒ»¸ö¼òµ¥µÄ×Ö·ûת»»£¬×ª»»¹æÔòÊÇnew_c=chr(ord(old_c)+2) ³¬¹ý×Ô¶¯»Øת¡£
ÎÒÃÇ¿ÉÒÔ¿´µ½£¬¸Ã¹ØµÄÍøַΪhttp://www.pythonchallenge.com/pc/def/map.html¡£ÄÇô°´ÕÕÖ¸µ¼¹Ø¸ø³öµÄ²ßÂÔ£¬Ö»Òª½«mapÌ滻Ϊocr¼´¿Éͨ¹Ø¡£µ«Èç¹û½öÊÇÈç´Ë£¬ÄÇô¾ÍÍêȫƲ¿ªÁËPython£¬¸Ã¹Ø½«³¹³¹µ×µ×µØÍË»¯ÎªÒ»°ãµÄÄԽתÍä¡£
ʵ¼ÊÉÏÔÚͼƬÏÂÓÐÒ»´®¿´²»¶®µÄ×Ö·û´®£¬°´ÕÕÉÏÊö×Ö·ûת»»¹æÔò£¬ÕâÓ¦¸Ã¿ÉÒÔͨ¹ýpython×ö¼òµ¥´¦Àí£¬´Ó¶øµÃµ½¿Éʶ±ðµÄ×Ö´®£¬´úÂëÈçÏ ......
PythonǶÈëC++Ïê½â(1)--HelloWorld
À´CSDNµÄʱºò£¬¸Õ¸Õ½Ó´¥Python£¬ÄÇʱºò¶ÔPythonµÄǶÈ벿·ÖºÜ¸ÐÐËȤ£¬Ö»ÊÇһֱûÓÐʱ¼äÀ´ÅªÇåÆäÃæÉ´£¬Òò´ËҲһֱûÓÐʹÓÃǶÈëµÄ¹¦ÄÜ£¬ÁíÒ»¸öÔÒòÊÇÎÒ»¹Ã»ÓÐÕæÕýÓÃPythonд¹ýÒ»¸öÕýʽµÄÓÐÓõãµÄ¶«Î÷£¬²»¹ý£¬ÏÖÔڻعýÍ·À´¼ÌÐø¿´ÕâÒ»²¿·Ö£¬·¢ÏÖ»¹ÊÇͦ¼òµ¥µÄ¡£ÒÔÇ°Ïë°ÑÕⲿ·Ö·Òë³öÀ´£¬¿ÉÊÇÓÉÓÚʱ¼äÔÒò£¬Ò²Ã»ÓÐÄǾ«Á¦£¬ËùÒÔÕâÀïÎһὫÎÒËù̽¾¿µÄÿ¸öPython/CǶÈ벿·Öº¯Êý¶¼ÓÃʵÀýÀ´ËµÃ÷£¬ÎÒÏë¿´´úÂë±ÈÎÒ½âÊÍҪͨË×Ò׶®¡£
ÔÙ˵helloworld֮ǰ£¬ÏȲ»µÃ²»ÌáÏÂǶÈëµÄÅäÖÃÎÊÌâ¡£
²½Ö裺
1£ºÇëµ½¹ÙÍøÏÂÔØpythonµÄ°²×°³ÌÐò£¬°²×°python£¨ÎÒÏëÕâ²½Óеã¶àÓ࣬²»¹ý»¹ÊÇдÉÏ°É£©
2£º½Ó×ÅÄã¿ÉÄÜ»¹ÐèÒªÏÂÔØpython£¨Óë°²×°°æ±¾Ïàͬ£©Ô´´úÂ룬ÒòΪÎÒÃÇÐèÒªÔÚdebugϱàÒëÁ´½ÓÉú³É¶ÔÓ¦µÄdebug¿â£¬ÈôÄãÄÜÔÚÍøÉÏÕÒµ½±ðÈËÒѾ±àÒëºÃµÄ¿â£¬ÄãÒ²¿ÉÒÔÖ±½ÓÓñðÈ˵ġ£ÕâÑùµÃµ½2¸ödebug°æ±¾µÄ.libºÍ.dll
3£º½«pythonĿ¼ÏµÄincludeÎļþ¼ÐϵÄÎļþÒƵ½±àÒëϵͳµÄincludeÖУ¬È»ºó½«releaseºÍdebug°æ±¾µÄ.libºÍ.dll·Åµ½Ö¸¶¨µÄÎļþ¼ÐÖУ¨lib·Åµ½±àÒëϵͳlib£¬dll·Åµ½windows/system32/£©
4£ººÃÁË£¬ÅäÖþʹËÍê³ÉÁË¡£
À´¿´´úÂ룺
#include "python/python.h" // ......
PythonǶÈëC++Ïê½â(1)--HelloWorld
À´CSDNµÄʱºò£¬¸Õ¸Õ½Ó´¥Python£¬ÄÇʱºò¶ÔPythonµÄǶÈ벿·ÖºÜ¸ÐÐËȤ£¬Ö»ÊÇһֱûÓÐʱ¼äÀ´ÅªÇåÆäÃæÉ´£¬Òò´ËҲһֱûÓÐʹÓÃǶÈëµÄ¹¦ÄÜ£¬ÁíÒ»¸öÔÒòÊÇÎÒ»¹Ã»ÓÐÕæÕýÓÃPythonд¹ýÒ»¸öÕýʽµÄÓÐÓõãµÄ¶«Î÷£¬²»¹ý£¬ÏÖÔڻعýÍ·À´¼ÌÐø¿´ÕâÒ»²¿·Ö£¬·¢ÏÖ»¹ÊÇͦ¼òµ¥µÄ¡£ÒÔÇ°Ïë°ÑÕⲿ·Ö·Òë³öÀ´£¬¿ÉÊÇÓÉÓÚʱ¼äÔÒò£¬Ò²Ã»ÓÐÄǾ«Á¦£¬ËùÒÔÕâÀïÎһὫÎÒËù̽¾¿µÄÿ¸öPython/CǶÈ벿·Öº¯Êý¶¼ÓÃʵÀýÀ´ËµÃ÷£¬ÎÒÏë¿´´úÂë±ÈÎÒ½âÊÍҪͨË×Ò׶®¡£
ÔÙ˵helloworld֮ǰ£¬ÏȲ»µÃ²»ÌáÏÂǶÈëµÄÅäÖÃÎÊÌâ¡£
²½Ö裺
1£ºÇëµ½¹ÙÍøÏÂÔØpythonµÄ°²×°³ÌÐò£¬°²×°python£¨ÎÒÏëÕâ²½Óеã¶àÓ࣬²»¹ý»¹ÊÇдÉÏ°É£©
2£º½Ó×ÅÄã¿ÉÄÜ»¹ÐèÒªÏÂÔØpython£¨Óë°²×°°æ±¾Ïàͬ£©Ô´´úÂ룬ÒòΪÎÒÃÇÐèÒªÔÚdebugϱàÒëÁ´½ÓÉú³É¶ÔÓ¦µÄdebug¿â£¬ÈôÄãÄÜÔÚÍøÉÏÕÒµ½±ðÈËÒѾ±àÒëºÃµÄ¿â£¬ÄãÒ²¿ÉÒÔÖ±½ÓÓñðÈ˵ġ£ÕâÑùµÃµ½2¸ödebug°æ±¾µÄ.libºÍ.dll
3£º½«pythonĿ¼ÏµÄincludeÎļþ¼ÐϵÄÎļþÒƵ½±àÒëϵͳµÄincludeÖУ¬È»ºó½«releaseºÍdebug°æ±¾µÄ.libºÍ.dll·Åµ½Ö¸¶¨µÄÎļþ¼ÐÖУ¨lib·Åµ½±àÒëϵͳlib£¬dll·Åµ½windows/system32/£©
4£ººÃÁË£¬ÅäÖþʹËÍê³ÉÁË¡£
À´¿´´úÂ룺
#include "python/python.h" // ......
½ñÌìÓöµ½Ò»¸öÒ»¸öÎÊÌ⣬Êǽ«×Ö·û´®ÀàÐ͵Äʱ¼äת»¯ÎªUTCʱ¼ä¡£ÀýÈçtime_str = "2009/11/09 12:23:23" ת»¯ÎªUTC intÐÍ¡£
ÕÒÁËһЩ×ÊÁÏ£¬·¢ÏÖtimeÄ£¿é¾ÍÄÜÍê³ÉÕâ¸öת»»¡£
import time
time_str = "2009/11/09 12:23:23"
time_s = time.strptime(time_str,"%Y/%m/%d %H:%M:%S")
utc_f = time.mktime(time_s)
utc_i = int(time.mktime(time_s))
print time_s
(2009, 11, 9, 12, 23, 23, 0, 313, -1)
print utc_f
1257740603.0
print utc_t
1257740603
ÔÚlinuxÖÐÊäÈë“date +%s” ¾ÍÄÜÊä³öµ±Ç°utcʱ¼ä¡£
¸½Â¼£º
http://www.opengroup.org/onlinepubs/009695399/functions/strptime.html
Directive:
%a - abbreviated weekday name
%A - full weekday name
%b - abbreviated month name
%B - full month name
%c - preferred date and time representation
%C - century number (the year divided by 100, range 00 to 99)
%d - day of the month (01 to 31)
%D - same as %m/%d/%y
%e - day of the month (1 to 31)
%g - like %G, but without the century
%G - 4-digit year corresponding to the ISO week number (see ......
pythonÖйúÂÛ̳ http://www.okpython.com/bbs/index.php
¿ªÔ´ÉçÇø http://sourceforge.net/
python¹ÙÍø http://www.python.org/
pythonIDE BOAhttp://boa-constructor.sourceforge.net/
pythonIDE ´óÈ«http://www.oschina.net/project/tag/120
python×é¼þhttp://py.dwordhack.com/
±¾ÎÄÀ´×Ôhttp://www.tsp2c.cn/ ......
ÎÒÏȸøÒ»¸ö³õ²½µÄ±í¸ñ°É£¬´ó¼ÒÈç¹ûÓÐʲôÒâ¼û£¬»òÓв¹³ä£¬»¶ÓÌá³ö¡£ÓÐЩÎÒûÓÐÓùý£¬ÏȲ»Ð´ÁË¡£
ÒÔÏÂÊÇÎÒʹÓùýµÄpython IDE:
³ýÁËPythonWin, VisualPythonÖ»Ö§³ÖWindows£¬ÆäËü¶¼ÖÁÉÙÖ§³ÖWin/Linux/Mac¡£
¸÷ÏÒ壺
×Ô¶¯²¹È«£º±äÁ¿/º¯ÊýÃû´òµ½Ò»°ëʱ£¬Ìáʾ¿ÉÄܵÄÍêÕûµÄ±äÁ¿/º¯ÊýÃû¡£
ÖÇÄܸÐÖª£ºÔÚ¿â/Àà/¶ÔÏóºó´ò"."ºó£¬Ìáʾ¿ÉÄܵĺ¯Êý»ò±äÁ¿¡£
µ÷ÊÔ£º·ÖËĵµ£¬´ÓºÃÓõ½²»ºÃÓ÷ֱðΪ“ÀàVC”(µ÷ÊÔÆ÷²Ù×÷·½Ê½ÓëVC/eclipseÏàËÆ)£¬“WPDB”(ʹÓÃWinPdb×÷Ϊµ÷ÊÔÆ÷)£¬“Óÿâ”(ÒªÅäºÏרÃŵÄpythonµ÷ÊԿ⣬¼´Òª¸Ä´úÂëÀ´ÅäºÏµ÷ÊÔ)£¬×î²ÒµÄµ±È»ÊÇ“ÎÞ”À²¡£
Óï·¨¼ì²é£º´ÓºÃÓõ½²»ºÃÓ÷ֱðΪ“´æÅÌʱ”(´æÅÌʱ×Ô¶¯¼ì²é£¬Ò²¿ÉÒÔÔڲ˵¥ÀïÊÖ¶¯Ñ¡Ôñ¼ì²é)£¬“ÊÖ¶¯”(Ôڲ˵¥ÀïÑ¡Ôñ¼ì²é)£¬“ÎÞ”(ûÓÐÓï·¨¼ì²é¹¦ÄÜ)
¿ªÔ´£º·ÖΪ¿ªÔ´£¬¹²Ïí(ÌṩÃâ·ÑÊÔÓã¬È»ºóÐèÒª¸¶·Ñ)£¬ÊÕ·ÑÈýÖÖ¡£Ä¿Ç°»¹Ã»ÓГÊÕ·Ñ”ÕâÒ»Àà¡£
ÍƼö¶È£ºÎåÐÇΪ×îÍƼö£¬Ò»ÐÇΪ×î²»ÍƼö¡£ÍƼö¶ÈΪ×÷ÕßÖ÷¹ÛÆÀ¼Û£¬²»´ú±íÆäËûÈËÒâ¼û¡£
¸÷IDE¼ò½é(×¢Òâ±¾ÎÄ×îºóÐÞ¸Äʱ¼äÊÇ2008Äê7ÔÂ)£º
IDLE:
×°ÁËpytho ......