1

これを回避するためのコード構造化/プログラミング手法は次のとおりです。

  if url.netloc  == "www.youtube.com" or "youtu.be" or "soundcloud.com or //
  "instagram.com" or "vine.co" or ETC ETC
     do XYZ
4

2 に答える 2

5

次の行

url.netloc == "www.youtube.com" or "youtu.be" or "soundcloud.com" or "instagram.com"

次のようなものです:

(url.netloc == "www.youtube.com") or ("youtu.be") or ("soundcloud.com") or ("instagram.com")

True空でない文字列が述語として使用される場合、真の値として扱われるため、常に生成されます。

代わりに次のように使用inします。

if url.netloc in ("www.youtube.com", "youtu.be", "soundcloud.com", "instagram.com", ..):

別の方法として use を使用することもできますが、複数回or繰り返す必要があります。or url.netloc ==

于 2013-10-31T08:05:57.277 に答える
1

最も単純なのは、次のようになると思います。

xyz_targets = ('www.youtube.com', 'youtu.be', ...)
if url.netloc in xyz_targets:
    doXYZ()

あるいは:

actions = {'www.youtube.com': doXYZ,
                   'youtu.be': doXYZ,
                   ...
                   }
actions.get(url.netloc, doNothing)()

xyz_targetsまたは、構築または構築のために構成ファイルを解析する同様のアイデアの変形actions

于 2013-10-31T08:12:12.480 に答える