¶Ô Python º¯ÊýµÄ"µ÷ÖÆ"£¬ÊÇÖ¸¶ÔÆä×ö³öºÏºõÐèÇóµÄÉèÖ᣾ßÌåµÄµ÷ÖÆ·½·¨£¬Êǽ«Æä²ÎÊýÉèΪ¹Ì¶¨Öµ£¨³£Êý£©¡£
É趨µ¥Ò»µÄ²ÎÊýÖµ
ÔÏȵĺ¯ÊýÊÇÕâÑùµÄ£º
>>> def foo(cooked, standard):
... print "foo called with cooked: %s, standard: %s" % \
... (cooked, standard)
µ÷ÓÃËü£º
>>> foo('a', 'b')
foo called with cooked: a, standard: b
²»¹ý£¬ÏëÒªµÄÊÇÈÃÕâ¸öº¯ÊýµÄµÚÒ»¸ö²ÎÊý£¬±ä³É"µ÷ÖƲÎÊý"£¬²¢ÇÒֻʣϵڶþ¸ö²ÎÊý¡£
ͨ¹ý Python ±ê×¼¿âÄ£¿éfunctoolsµÄÀàpartial£¬¿ÉÒÔ×öµ½¡£
>>> from functools import partial
Óà partial µ÷ÖƵÚÒ»¸ö²ÎÊý£º
>>> cooked1 = partial(foo, 'cooked_value1')
Ôº¯Êý foo µÄµÚÒ»¸ö²ÎÊý£¬±»µ÷ÖƳÉΪº¯Êý cooked1£¬foo µÄµÚ¶þ¸ö²ÎÊý£¬³ÉÁË cooked1 µÄΨһ²ÎÊý¡£
>>> cooked1('value1')
foo called with cooked: cooked_value1, standard: value1
>>> cooked1('value2')
foo called with cooked: cooked_value1, standard: value2
¿ÉÒÔÓÃÆäËûÖµ£¬Éú³Éµ÷Öƺ¯Êý£º
>>> cooked2 = partial(foo, 'cooked_value2')
>>&g ......
´´½¨Áбí
sample_list = ['a',1,('a','b')]
Python Áбí²Ù×÷
sample_list = ['a','b',0,1,3]
µÃµ½ÁбíÖеÄijһ¸öÖµ
value_start = sample_list[0]
end_value =
sample_list[-1]
ɾ³ýÁбíµÄµÚÒ»¸öÖµ
del sample_list[0]
ÔÚÁбíÖвåÈëÒ»¸öÖµ
sample_list[0:0] = ['sample value']
µÃµ½ÁбíµÄ³¤¶È
list_length = len(sample_list)
Áбí±éÀú
for element in sample_list:
print(element)
Python
Áбí¸ß¼¶²Ù×÷/¼¼ÇÉ
²úÉúÒ»¸öÊýÖµµÝÔöÁбí
num_inc_list = range(30)
#will return a list
[0,1,2,...,29]
ÓÃij¸ö¹Ì¶¨Öµ³õʼ»¯Áбí
initial_value = 0
list_length = 5
sample_list = [
initial_value for i in range(10)]
sample_list =
[initial_value]*list_length
# sample_list ==[0,0,0,0,0]
¸½£ºpythonÄÚÖÃÀàÐÍ
1¡¢list£ºÁÐ±í£¨¼´¶¯Ì¬Êý×飬C++±ê×¼¿âµÄvector£¬µ«¿Éº¬²»Í¬ÀàÐ͵ÄÔªËØÓÚÒ»¸ölistÖУ©
a
= ["I","you","he","she"] ££ÔªËØ¿ÉΪÈκÎÀàÐÍ¡£
ϱ꣺°´Ï±ê¶Áд£¬¾Íµ±×÷Êý×é´¦Àí
ÒÔ0¿ªÊ¼£¬ÓиºÏ±êµÄʹÓÃ
0µÚ ......
python ûÓÐÊý×éµÄÊý¾Ý½á¹¹
#list ÐòÁÐ
sample_list = [1,2,3,'abc']
#dictionary ×Öµä
sample_dic = {"key":value, 2:3}
#tuple Ö»¶ÁµÄÐòÁÐ
sample_tuple = (1,3,"ab")
Ðò±í
Ðò±íÓÉһϵÁÐÖµÓöººÅ·Ö¸ô¶ø³É
Ðò±íÓë×Ö·û´®Ò»ÑùÊDz»¿É±äµÄ£º²»ÔÊÐí¶ÔÐò±íµÄijһÏֵ
×Öµä
¹ØÁªÊý×é
Óë×Ö·û´®²»Í¬µÄÊÇÁбíÊǿɱäµÄ£¬¿ÉÒÔÐÞ¸ÄÁбíµÄÿ¸öÔªËØ
¿ÉÒÔ½¨Á¢Ç¶Ì×ÁÐ±í£¨±íµÄÔªËØÒ²ÊÇÁÐ±í£©
ÁÐ±í·½·¨
ÁбíÊý¾ÝÀàÐÍ»¹ÓÐÆäËüһЩ·½·¨¡£ÏÂÃæÊÇÁбí¶ÔÏóµÄËùÓз½·¨£º
• insert(i, x) ----
ÔÚÖ¸¶¨Î»ÖòåÈëÒ»Ïî¡£µÚÒ»×Ô±äÁ¿ÊÇÒªÔÚÄÄÒ»¸öÔªËØÇ°Ãæ²åÈ룬ÓÃϱê±íʾ¡£ÀýÈ磬a.insert(0,
x)ÔÚÁбíÇ°Ãæ²åÈ룬a.insert(len(a), x)µÈ¼ÛÓÚa.append(x) ¡£
• append(x) ---- µÈ¼ÛÓÚa.insert(len(a), x)
• index(x) ---- ÔÚÁбíÖвéÕÒÖµx È»ºó·µ»ØµÚÒ»¸öֵΪx µÄÔªËصÄϱꡣûÓÐÕÒµ½Ê±³ö´í¡£
• remove(x) ---- ´ÓÁбíÖÐɾȥµÚÒ»¸öֵΪx µÄÔªËØ£¬ÕÒ²»µ ......
Ç°¼¸Ìì¿´µ½ÁËÒ»ÐÐÇó1000µÄ½×³ËµÄPython´úÂ룺
print
reduce
(
lambda
x
,
y
:
x
*
y
,
range
(
1
,
1001
))
Ò»ÏÂ×Ó±»python´úÂëµÄ¾«¼ò
Óë½ô´ÕËùÕÛ·þ£¬¹Ê¶Ô´úÂë½øÐÐÁ˼òµ¥µÄ·ÖÎö¡£
reduceÓërange¶¼ÊÇPythonµÄÄÚÖú¯Êý¡£
range£¨1£¬1001£©
±íʾÉú³É1µ½1000µÄÁ¬ÐøÕûÊýÁÐ±í£¨List£©¡£
reduce£¨functionA£¬iterableB£©£¬functionAΪÐèÒªÁ½
¸ö±äÁ¿µÄº¯Êý£¬²¢·µ»ØÒ»¸öÖµ¡£iterableBΪ¿Éµü´ú±äÁ¿£¬ÈçListµÈ¡£reduceº¯Êý½«BÖеÄÔªËØ´Ó×óµ½ÓÒÒÀ´Î´«È뺯ÊýAÖУ¬ÔÙÓú¯ÊýA·µ»ØµÄ
½á¹ûÌæ´ú´«ÈëµÄ²ÎÊý£¬·´¸´Ö´ÐУ¬Ôò¿É½«B
reduce³ÉÒ»¸öµ¥Öµ¡£ÔÚ´Ë£¬Êǽ«1µ½1000µÄÁ¬ÐøÕûÊýÁÐ±í´«Èëlambdaº¯Êý²¢ÓÃÁ½¸öÊýµÄ»ýÌæ»»ÁбíÖеÄÊý£¬Êµ¼ÊµÄ¼ÆËã¹ý³ÌΪ£º(...
((1×2)×3)×4)×...×1000)£¬×îºóµÄ½á¹û¼´1000µÄ½×³Ë¡£
ÏÂÃæÀ´½éÉÜÒ»ÏÂlambdaº¯Êý¡£
lambda
º¯ÊýÊÇÒ»ÖÖ¿ìËÙ¶¨Òåµ¥ÐеÄ×îСº¯Êý£¬ÊÇ´Ó Lisp
½èÓÃÀ´µÄ£¬¿ÉÒÔÓÃÔÚÈκÎÐèÒªº¯ÊýµÄµØ·½¡£ÏÂÃæµÄÀý×ӱȽÏÁË´«Í³µÄº¯ÊýÓëlambdaº¯ÊýµÄ¶¨Ò巽ʽ£º
1
>>>
def
f
(
x
,y):
2
...
&n ......
1 Ó°ÏñÓëͼÐÎ×ÊÁϵĴ¦Àí
ÌÖÂÛͼÐÎ(Ó°Ïñ) ±¾ÉíµÄ´¦Àí£¬¶øÌÖÂÛµÄÄÚÈݽ«»á¼¯ÖÐÔÚPython Imaging Library (PIL) ÕâÒ»Ì׳Ìʽ¿âÉÏ¡£
PIL ÊÇPython ÏÂ×îÓÐÃûµÄÓ°Ïñ´¦ÀíÌ×¼þ£¬ÓÉÐí¶à²»Í¬µÄÄ£×éËù×é³É£¬²¢ÇÒÌṩÁËÐí¶àµÄ´¦Àí¹¦ÄÜ£¬ÔÊÐíÎÒÃÇÔÚ¼òµ¥µÄPython ³ÌʽÀï½øÐÐÓ°ÏñµÄ´¦Àí¡£ ʹÓÃÏñPIL ÐíÑùµÄ³Ìʽ¿âÌ×¼þ¿ÉÒÔ°ïÖúÎÒÃǰѾ«Á¦¼¯ÖÐÔÚÓ°Ïñ´¦ÀíµÄ¹¤×÷±¾Éí£¬±ÜÃâÃÔʧÔڵײãµÄÑÝËã·¨ÀïÃæ¡£
ÓÉÓÚÓ°Ïñ´¦ÀíÇ£Éæµ½ÁË´óÁ¿µÄÊýѧÔËË㣬Òò´ËPIL ÖÐÓÐÐí¶àµÄÄ£×éÊÇÓÃC ÓïÑÔËùд³ÉµÄ£¬ÒÔÌáÉý´¦ÀíµÄЧÂÊ¡£ ²»¹ý£¬ÔÚʹÓõÄʱºò£¬ÎÒÃǵ±È»²»±ØÔÚÒâÕâÑùµÄÎÊÌ⣬ֻ¹Ü·ÅÐĵØÓþÍÊÇÁË¡£
1.1 PIL ÄÜΪÄã×÷µÄÊÂ
PIL ¾ß±¸(µ«²»ÏÞÓÚ) ÒÔϵÄÄÜÁ¦£º
ÊýÊ®ÖÖͼµµ¸ñʽµÄ¶ÁдÄÜÁ¦¡£ ³£¼ûµÄJPEG, PNG, BMP, GIF, TIFF µÈ¸ñʽ£¬¶¼ÔÚPIL µÄÖ§Ô®Ö®ÁС£ ÁíÍ⣬PIL Ò²Ö§Ô®ºÚ°×¡¢»Ò½×¡¢×Ô¶©µ÷É«ÅÌ¡¢RGB true color¡¢´øÓÐ͸Ã÷ÊôÐÔµÄRBG true color¡¢CMYK ¼°ÆäËüÊýÖÖµÄÓ°Ïñģʽ¡£Ï൱ÆëÈ«¡£
»ù±¾µÄÓ°Ïñ×ÊÁϲÙ×÷£º²ÃÇС¢Æ½ÒÆ¡¢Ðýת¡¢¸Ä±ä³ß´ç¡¢µ÷ÖÃ(transpose)¡¢¼ôÏÂÓëÌùÉϵȵȡ£
Ç¿»¯Í¼ÐΣºÁÁ¶È¡¢É«µ÷¡¢¶Ô±È¡¢ÈñÀû¶È¡£
É«²Ê´¦Àí¡£
PIL ÌṩʮÊýÖÖÂ˾µ(filt ......
ÎÒÖªµÀµÄÒ»ÖÖÔÚ
python
ÖÐ
Singleton mode
µÄʵÏÖÈçÏ£º
class Foo: pass
def
instance():
global inst
try:
inst
except:
inst =
Foo
()
return inst
¸ÃʵÏÖµÄÓŵã¾ÍÊǼòµ¥ºÍÖ±¹Û£¬µ«È±µãҲͬÑùÃ÷ÏÔ£º
ÐèÒª¿Í»§´úÂëÏÔʽ֪µÀÒ»¸ö½Ð
instance()
µÄ·½·¨À´´´½¨¸ÃÀàµÄ¶ÔÏó£»
ÔÚ²¢·¢»·¾³ÏÂÕâÖÖʵÏÖ²¢²»¿É¿¿£»
µÚ
2
µãÊÇÏ൱ÑÏÖصÄÒ»¸öȱÏÝ£¬Èç¹ûÄãÓÃÁËÉÏÃæµÄ´úÂ룬ÄÇÖ»ÄÜÆíµ»²»ÒªÓÐ
1
¸öÒÔÉϵÄʵÀý³öÏÖ£¨ËäÈ»¼¸Âʽϵͣ¬µ«»¹ÊÇÓпÉÄÜ£©£¬·ñÔò¾Í»á³öÏÖÏ¡Ææ¹Å¹ÖµÄÎÊÌâ¡£
Ò»¸öÉÔ΢ºÃЩʵÏÖÈçÏ£º
class
Singleton(object):
objs
= {}
def __new__(cls, *args, **kv):
if cls in cls.objs:
return cls.objs[cls]
......