在python中使布尔值返回true或false

时间:2017-09-27 23:57:38

标签: python python-2.7

我需要一些python代码的帮助。我想创建一个函数来检查视频是否正在播放一个真或假的媒体文件以获得返回布尔值。

我在player.py中创建了这个函数:

def isPlayingVideo(self):
    isPlayingVideo = xbmc.Player().isPlayingVideo()

    if isPlayingVideo == 'true':
       #set it to true
    else:
       #set to false

在test.py中,我想检查isPlayingVideo()是否有返回boolean为true或false:

import player

if not self.player.isPlayingVideo():
   #ok let do something

你能告诉我一个示例片段,当我使用if not self.player.isPlaying()时,我可以使用什么来使布尔值返回true的真假?

3 个答案:

答案 0 :(得分:2)

假设您已在 player.py 中构建了一个类,因此它具有以下结构:

class Player(object):

# other defs, including __init__, etc.

    # and then this
    def isPlayingVideo(self):
        return xbmc.Player().isPlayingVideo()

    # this assumes that xbmc.Player().isPlayingVideo()
    # returns itself a boolean value.

然后在 test.py 中你需要将播放器实例化为一个对象,所以类似

import player

my_player = Player() # this make a new object which can call the Player methods.

if my_player.isPlayingVideo():
   # this code will only fire if the return is True
else:
   # handle the False return case.

答案 1 :(得分:2)

只需返回测试结果,无需if / else

def isPlayingVideo(self):
    isplaying = xbmc.Player().isPlayingVideo()

    return isplaying == 'true'

等式测试本身返回TrueFalse,所以只需使用它。

注意:我重命名了局部变量,因为在密切相关的范围内有三个具有相同名称的东西只是在寻找麻烦。

答案 2 :(得分:0)

我假设您在某种形式的循环中运行它。如果您希望变量默认为特定值,请在for / while循环开始时将其初始化为所需值,然后在函数中,如果条件允许,则函数返回不同的值。 ShadowRanger的代码也可以使用并且非常优雅。