ÔÚPythonÖж¯Ì¬°ó¶¨property
ÔÚPythonÖпÉÒÔ°Ñproperty¶¯Ì¬µÄ°ó¶¨µÄobjectµÄ¼Ì³ÐÀàÖУ¬²¢ÇÒ¿ÉÒÔ¶¨Òå´øÓвÎÊýµÄgetºÍset·½·¨¡£
±ÈÈ磬ÎÒÃǶ¨ÒåÁËÈ«¾Ö±äÁ¿g£¬È»ºóͨ¹ýÁ½¸ö·½·¨À´´æÈ¡gµÄÄÚÈÝ
def get_g(self):
return g
def set_g(self, _g):
global g
g = _g
¶¨ÒåÒ»¸öobjectµÄ¼Ì³ÐÀàA£º
class A(object):
pass
È»ºó¿ÉÒÔͨ¹ýsetattr°ÑÒ»¸öproperty¶¯Ì¬µÄbindµ½AÖУº
setattr(A, 'g', property(get_g, set_g))
ÎÒÃÇÎÒÃÇ¿ÉÄÜ»¹Òª¶Ô¶¯Ì¬bind×öһЩ¶¨ÖÆ£¬±ÈÈçÎÒÃÇ¿ÉÄÜÓÐÁ½¸öÈ«¾Ö±äÁ¿£¬g1ºÍg2£¬Ï£ÍûÔÚ°ó¶¨Ê±¶¯Ì¬µÄ¾ö¶¨µ½µ×ÊǰóË£¬ÄÇôÎÒÃǾͿÉÒÔÕâô×ö£º
def get_pp(name):
def get_g(self):
return globals()[name]
def set_g(self, _g):
globals()[name] = _g
return property(get_g, set_g)
È»ºó¿ÉÒÔsetattr(A, 'g', get_pp('g1') )£¬´Ó¶ø°Ñg1¹ØÁªµ½µÄAµÄ‘g’ÊôÐÔ¡£
Ïà¹ØÎĵµ£º
from cmd import *
class MyShell(Cmd):
def preloop(self):
print "print this line before entering the loop"
def postloop(self):
&nb ......
2005-2006ѧÄêµÚ1ѧÆÚ
±à Òë Ô Àí
¿Î ³Ì Éè ¼Æ ±¨ ¸æ
°à¼¶ 02¼Æ(¶þ)
ѧºÅ 19
ÐÕÃû ÁõÏþÃ÷
³É¼¨
Ö¸µ¼½Ìʦ ¬³¯»Ô
Ò»¡¢ Éè¼ÆÄ¿µÄ
¼ÓÉî¶Ô±àÒ ......
1£®»ñµÃµ±Ç°Â·¾¶
ÔÚPythonÖпÉÒÔʹÓÃos.getcwd()º¯Êý»ñµÃµ±Ç°µÄ·¾¶¡£ÆäÔÐÍÈçÏÂËùʾ¡£
os.getcwd()
¸Ãº¯Êý²»ÐèÒª´«µÝ²ÎÊý£¬Ëü·µ»Øµ±Ç°µÄĿ¼¡£ÐèҪ˵Ã÷µÄÊÇ£¬µ±Ç°Ä¿Â¼²¢²»ÊÇÖ¸½Å±¾ËùÔÚµÄĿ¼£¬¶øÊÇËùÔËÐнű¾µÄĿ¼¡£ÀýÈ磬ÔÚPythonWinÖÐÊäÈëÈçϽű¾¡£
>>> import os
>>> print 'current director ......
ÔÚÏîÄ¿ÀïÃæÒ»¸ö½âÎöÎı¾µÄ¹¤¾ßÀïÃæÓõ½ÁËÕâ¸öÃüÁîÀ´¸³Öµ£¬¿ªÊ¼Ò»Ö±ÖªµÀÒâ˼£¬ºÇºÇ ²éÁËÏ£¬ÕÒµ½·½·¨ÈçÏ£º
exec
Óï¾äÓÃÀ´Ö´Ðд¢´æÔÚ×Ö·û´®»òÎļþÖеÄPythonÓï¾ä¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔÔÚÔËÐÐʱÉú³ÉÒ»¸ö°üº¬Python´úÂëµÄ×Ö·û´®£¬È»ºóʹÓÃ
exec
Óï¾äÖ´ÐÐÕâЩÓï¾ä¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÀý×Ó¡£
> ......