当函数 1 在函数 1 中调用另一个函数 2 时,来自其他文件的函数 1 失败 [英] function1 from other file fail when that function1 is calling another function2 inside function1

查看:27
本文介绍了当函数 1 在函数 1 中调用另一个函数 2 时,来自其他文件的函数 1 失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

FileB.py 中的代码工作正常,但当我从其他文件调用它时有一次失败.我发现在下面的代码中调用函数search_response"时它停止工作.

Code in FileB.py works fine, but fail at one point when I am calling it from other file. I found that it's stops working when calling function "search_response" in the code below.

文件A.py

from FileB import *
search = "stackoverflow"    
searchF(search)

文件B.py

from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser

search = "Google"    
def searchF(search):

  DEVELOPER_KEY = "REPLACE_ME"
  YOUTUBE_API_SERVICE_NAME = "youtube"
  YOUTUBE_API_VERSION = "v3"

打印searchF开始" - 有效

  def youtube_search(options):
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
      developerKey=DEVELOPER_KEY)

    search_response = youtube.search().list(
      q=options.q,
      type="video",
      part="id,snippet",
      maxResults=options.max_results
    ).execute()

打印搜索响应执行"不起作用

    search_videos = []

    for search_result in search_response.get("items", []):
      search_videos.append(search_result["id"]["videoId"])
    video_ids = ",".join(search_videos)

    video_response = youtube.videos().list(
      id=video_ids,
      part='snippet, contentDetails'
    ).execute()

    videos = []

    for video_result in video_response.get("items", []):
      videos.append("%s, (%s,%s)" % (video_result["snippet"]["title"],
                                video_result["contentDetails"],
                                video_result["contentDetails"]))
    find = "licensedContent': True"
    result = ', '.join(videos)
    print find in result

  if __name__ == "__main__":
    print "__main__"
    argparser.add_argument("--q", help="Search term", default=search)
    argparser.add_argument("--max-results", help="Max results", default=25)
    args = argparser.parse_args()

    try:
      youtube_search(args)
    except HttpError, e:
      print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)

推荐答案

我将 if __name__ == "__main__": 更改为 if 1: 并且它有点工作.但我认为这是一个可怕的解决方案.

I changed if __name__ == "__main__": to if 1: and it's kinda works. But I am assume it's a horrible solution.

这篇关于当函数 1 在函数 1 中调用另一个函数 2 时,来自其他文件的函数 1 失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆