3
我已經創建了一個類,我想給用戶(可能是我)兩種不同的方式來初始化它。對於此示例的類被稱爲Box
和我想與要麼初始化:需要python函數中的命名參數
兩套笛卡爾座標,代表最小和最大(X,Y)。
一組表示分鐘笛卡爾座標以及箱尺寸
我可以通過使用命名參數做到這一點,但是我想,如果沒有名爲參數稱爲引發錯誤。在我沒有命名參數被調用的情況下,我當前的代碼在所謂的pass_var
中放置了一個虛擬參數。它的工作原理,但我認爲必須有一個更優雅或Pythonic解決方案。
class Box(object):
def __init__(self, pass_var=None, coordinates=None, min_points=None, dimensions=None):
if coordinates:
setup_box_from_coordinates()
return
elif min_points and dimensions:
setup_box_from_dimensions()
return
raise NameError("Box Class needs to be initiated with 'coordinates='' or 'min_pts= & dimensions='"
非常感謝!我將按照您的建議使用類方法,它將使代碼更直接。 – VectorVictor
此外,如果其他人發現它有用,這裏是更多關於classmethod - http://stackoverflow.com/questions/1950414/what-does-classmethod-do-in-this-code/1950927#1950927 – VectorVictor