# with open('demo1.py') as fp:# print(fp.read())
# __enter__(self)
# __exit__
#__enter__魔術方法
"""使用with語句的時候,會呼叫這個魔術方法 ,這個方法的返回值可以作為as***x的值
""""""
__exit__(self, exc_type, exc_val, exc_tb)魔術方法
1.執行完這個with語句中的**模組或者是這個**塊中的**發生了異常,就會執行這個方法。
可以做一些清理工作,比如關閉檔案
2.如果在with語句中發生了異常,那麼 exc_type, exc_val將會儲存這個異常,沒有異常他們的值為none
3.with 語句發生了異常,將會執行__exit__
如果不想讓這個異常丟擲,那麼可以返回true,就不會把異常丟擲到外面了
"""class fileopener():
def __init__(self,filename,model):
self.filename=filename
self.model=model
def __enter__(self):
self.fp=open(self.filename,self.model)
print('enter')
return self.fp
def __exit__(self, exc_type, exc_val, exc_tb):
self.fp.close()
#不想異常丟擲,不想產生異常返回true
print(exc_tb)
print(exc_type)
print(exc_val)
print('__exit__')
#不丟擲異常
return true
with fileopener('demo5.py','w') as fp:
fp.write('hellowprld')
print('write')
a=1c=a/0
php魔術常量,魔術方法
魔術常量 1。line 返回檔案中的當前行號。2。file 返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自php4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。3。function 返回函式名稱 php4.3.0 新加 自php5 起本常量返...
invoke 魔術 PHP 魔術方法
php 魔術方法 構造方法 construct 析構方法 destruct get 與 set unset call 和 callstatic sleep 和 wakeup clone tostring invoke set state debuginfo construct 這個方法應該是最常用的...
PHP魔術方法和魔術常量
具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...