【问题标题】:In Python, is it preferred to declare local variables to extract data from an object, or to just deal with the object directly?在 Python 中,是更喜欢声明局部变量来从对象中提取数据,还是直接处理对象?
【发布时间】:2016-08-12 15:57:48
【问题描述】:

例如,假设您有一个对象 Dog,它具有 3 个不同的字符串属性(bark、sleep、eat)。还假设您有一个函数,您将多次重复访问这些变量(dog.bark、dog.bark、dog.sleep)。是在函数开头声明这些(bark = dog.bark)还是直接使用dog对象?

例子:

def print_dog_actions(dog):
    print dog.bark
    if dog.bark == 'loud':
       print 'dog bark is loud! {bark}'.format(bark=dog.bark)
    print dog.sleep
    print dog.eat 
    print dog.sleep + dog.eat

对比:

def print_dog_actions(dog):
    bark = dog.bark
    sleep = dog.sleep
    eat = dog.eat
    print sleep
    print sleep + eat
    print bark + eat

可能是一个愚蠢的问题,但我很难找到 Python 中的某些标准/约定,这只是我遇到的众多问题之一。

【问题讨论】:

  • 第一个是路要走!!
  • 这两个代码的作用不同。

标签: python coding-style


【解决方案1】:

第一个是您经常看到的,但这取决于您的总体目标是什么。但通常情况下,你会想要这样做。

我真的想不出第二种方式的理由,除了有时它可能会让你更容易阅读,如果变量变得多毛。

这两种方式都是完全有效的。第一种方式更标准。

【讨论】:

    【解决方案2】:

    如果您不打算多次使用对象的属性,比如dog.bark,那么声明一个额外的变量来只做一件事是没有意义的——除了可读性。

    这个问题可以引出内存管理的话题;看看“堆”和“栈”以及 Python 如何处理存储变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多