函数的Python参数

2024-04-20 06:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样一个函数定义:

 def temperature(celcius=10, fahr=50):

有没有办法在函数定义的主体中检查两个参数中的哪一个是实际传入的?当我写这个问题的时候,我意识到我可以在我正在考虑的人工示例中手动完成它(参见下面的代码),但是对于具有任意数量kw参数的函数,有没有一种通用的方法来完成它呢?你知道吗

class Temperature(object):
  def __init__(self, celcius=10, fahrheneit=50):
    if celcius != 10:
        self._celcius=celcius
        self._fahr=celcius*1.8 + 32
    else:
        if fahrheneit != 50:
            self._fahr=fahrheneit
            self._celcius=5.0*(fahrheneit - 32)/9.0
        else:
            self._celcius=celcius
            self._fahr=fahrheneit
  @property
  def fahr(self):
    return self._fahr

  @fahr.setter
  def fahr(self, f):
    if f < -459.66:
        raise ValueError("Temperature below absolute 0 (-459.66F) is not possible")
    self._fahr=f
    self._celcius=5.0*(f-32)/9.0

  @property
  def celcius(self):
    return self._celcius

  @celcius.setter
  def celcius(self,c):
    if c < -273.15:
        raise ValueError("Temperature below absolute 0 (-273.15 celcius) is not possible")
    self._celcius=c
    self._fahr=1.8*c+32

Tags: 函数self参数returnif定义defproperty