代码之家  ›  专栏  ›  技术社区  ›  Mr. B.

Python:日志myobj.myprop公司即使是我的朋友或者myobj.myprop公司没有?

  •  -3
  • Mr. B.  · 技术社区  · 5 年前

    我在找一个 用于:

    name = ''
    if myobj not None and myobj.name not None:
      name = myobj.name
    
    date = ''
    if myobj not None and myobj.date not None:
      date = myobj.date
    
    logging.info('Something happened with %s at %s', name, date)
    

    什么

    logging.info('Something happened with %s at %s', none_as_empty_str(myobj.name), none_as_empty_str(myobj.date))
    

    有什么想法吗?谢谢您!

    1 回复  |  直到 5 年前
        1
  •  1
  •   khelwood Muhammed Elsayed.radwan    5 年前

    myobj and myobj.name or ''
    

    myobj myobj.name 没有(或其他错误),这将产生 '' .
    我的名字 .

    none_as_empty_str 函数是可行的,只要您将属性的访问推迟到函数内部,或者间接地访问它。那样的话,如果 麦奥比

    def none_as_empty_str(obj, attr):
        return getattr(obj, attr, None) or ''
    
    logging.info('Something happened with %s at %s',
                 none_as_empty_str(myobj, 'name'),
                 none_as_empty_str(myobj, 'date'))