相关疑难解决方法(0)

任何人都可以帮助压缩这个Python代码吗?

我正在用Python编写脚本并遇到一些问题:

class LightDMUser(QObject):
  def __init__(self, user):
    super(LightDMUser, self).__init__()
    self.user = user

  @pyqtProperty(QVariant)
  def background(self):      return self.user.get_background()

  @pyqtProperty(QVariant)
  def display_name(self):    return self.user.get_display_name()

  @pyqtProperty(QVariant)
  def has_messages(self):    return self.user.get_has_messages()

  @pyqtProperty(QVariant)
  def home_directory(self):  return self.user.get_home_directory()

  @pyqtProperty(QVariant)
  def image(self):           return self.user.get_image()

  @pyqtProperty(QVariant)
  def language(self):        return self.user.get_language()

  @pyqtProperty(QVariant)
  def layout(self):          return self.user.get_layout()

  @pyqtProperty(QVariant)
  def layouts(self):         return self.user.get_layouts()

  @pyqtProperty(QVariant)
  def logged_in(self):       return self.user.get_logged_in()

  @pyqtProperty(QVariant)
  def name(self):            return self.user.get_name()

  @pyqtProperty(QVariant)
  def real_name(self):       return self.user.get_real_name()

  @pyqtProperty(QVariant)
  def session(self):         return self.user.get_session()
Run Code Online (Sandbox Code Playgroud)

如您所见,此代码非常多余.我尝试像这样冷凝它:

class LightDMUser(QObject):
  attributes = ['background', 'display_name', 'has_messages', 'home_directory', …
Run Code Online (Sandbox Code Playgroud)

python class pyqt

7
推荐指数
1
解决办法
698
查看次数

python中的加权随机样本

我正在寻找一个合理的函数定义weighted_sample,它不会为给定权重列表返回一个随机索引(这类似于

def weighted_choice(weights, random=random):
    """ Given a list of weights [w_0, w_1, ..., w_n-1],
        return an index i in range(n) with probability proportional to w_i. """
    rnd = random.random() * sum(weights)
    for i, w in enumerate(weights):
        if w<0:
            raise ValueError("Negative weight encountered.")
        rnd -= w
        if rnd < 0:
            return i
    raise ValueError("Sum of weights is not positive")
Run Code Online (Sandbox Code Playgroud)

给出一个具有恒定权重的分类分布)但随机抽样k的那些,没有替换,就像random.sample行为相比random.choice.

就像weighted_choice可以写成一样

lambda weights: random.choice([val for val, cnt in enumerate(weights) …
Run Code Online (Sandbox Code Playgroud)

python random algorithm

7
推荐指数
1
解决办法
9630
查看次数

标签 统计

python ×2

algorithm ×1

class ×1

pyqt ×1

random ×1