如果存在的东西,用东西做点什么

时间:2015-07-21 22:17:06

标签: python

做这样的事情的正确(pythonic)方法是什么?

var = 'The quick brown fox'

def exists(query, string):
    if query in string:
        return query
    else:
        return None

if thing = exists('fox', var):
    print(thing.upper())

这是我的例子,但我真正想做的是检查是否存在Selenium网络元素。我想避免将结果设置为变量,因为这违背了" exists"的目的。此外,我不想第一次执行搜索两次返回true / false,然后再次,如果它是真的,则用它做一些事情。

1 个答案:

答案 0 :(得分:1)

这是其中一种情况,有多种方法可以实现。你可以做的一些事情:

  1. 将结果视为零到一个元素的集合(如果在这种情况下将其称为def find_one(query, string): if query in string: return [query] return [] ,则更有意义):

    for

    然后你可以在for existing_element in find_one(query, string): # Do something with existing element break else: # Here if we don't have any elements (note the `break` above) 循环中使用该函数:

    def if_exists(cb, query, string):
        if query in string:
            cb(query)
    
    def run_on_valid_query(q):
        # Do something with q
    
    if_exists(run_on_valid_query, query, string)
    
  2. 将回调作为第一个参数传递:

    result = extract_from(query, string)
    if result:  # Do work here
    
  3. 咬紧牙关并使用中间变量:

    <html>