2017-12-19 2 views
1

場合、私は、コード使用するクラスは、内部の文

class disable_file_system_redirection: 
    if mysystem == "Windows": 
     _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection 
     _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection 

     def __enter__(self): 
      self.old_value = ctypes.c_long() 
      self.success = self._disable(ctypes.byref(self.old_value)) 

     def __exit__(self, type, value, traceback): 
      if self.success: 
       self._revert(self.old_value) 
    else: 
     pass 

If test == “yes”: 
    with disable_file_system_redirection: 
     try: 
      “some code” 
else: 
    try: 
     “same code” 

のこの種を持っています。エラーを出さずにこれらの2つの同じコードをマージすることはできません。あなたが関数にあなたのコードを外部委託することができ、その

If test = = “yes”: 

    with disable_file_system_redirection: 
else: 
    pass #without disable_file_system_redirection: 

“some code” 
+0

場合-else'、あなたは 'てみ-except'を選ぶことができます'の必要はありませんブロック。 –

答えて

0

ような何かを行うことが可能な方法はありません:

def code_to_do(): 
    print("code_to_do") 

if test == "yes": 
    with disable_file_system_redirection: 
     try: 
      code_to_do() 
     except Exception as e: 
      print(str(e)) 
else: 
    try: 
     code_to_do() 
    except Exception as e: 
     print(str(e)) 
+0

ありがとうございます。それは目を覚ました –

関連する問題