类变量(不是实例变量)是具有相同类类型的对象的快捷方式吗?

时间:2018-06-19 18:27:42

标签: python-3.x

  

对不起,英语不好(或有些错误)!这不是我的母语。

在回答我的问题之前,您需要查看一些代码。

  filterrific(
default_filter_params: {},
available_filters: [
  :with_mother_tongue,
  :with_locality,
  :with_start_time_gte])

scope :with_mother_tongue, -> (search_string) {
where("users.mother_tongue LIKE ?", (search_string.to_s.gsub('*', '%') + '%').gsub(/%+/, '%'))
}

scope :with_locality, -> (search_string) {
where("users.locality LIKE ?", (search_string.to_s.gsub('*', '%') + '%').gsub(/%+/, '%'))
}

scope :with_start_time_gte, lambda { |ref_date|
where('users.availabilities.start_time >= ?', ref_date)
}

我需要制作class position: # position.zero is here. def __init__(self, x=0, y=0): self.x = x self.y = y # or here 变量,该变量是position.zeroposition(0, 0)的快捷方式

1 个答案:

答案 0 :(得分:1)

使用类方法:

class position:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

    @classmethod
    def zero(cls):
        return cls()

将其设置为属性,因此接口是position.zero而不是position.zero(),但这是很简单的。 here对此进行了详细介绍。如果您只需要/想要一个零实例并且不需要它尊重继承,请选择可用的最简单的选项,并在定义后将其放入类名称空间:

class position:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

position.zero = position()