我想在Python 2.7(称为Point)中构建一个类,并检查输入参数,如坐标和其他属性。我认为更好的方法是在每个参数中创建一个具有属性和setter的类。像这样:
$( document ).ready(function() {
$('#valid_from').datetimepicker({
timepicker:false,
closeOnDateSelect:false,
format:'m-d-Y',
changeMonth: true,//this option for allowing user to select month
changeYear: true, //this option for allowing user to select from year range
minDate: 0,
onChangeDateTime: function(dp,$input){
startDate = $("#valid_from").val();
}
});
$('#valid_to').datetimepicker({
timepicker:false,
closeOnDateSelect:false,
format:'m-d-Y',
changeMonth: true,//this option for allowing user to select month
changeYear: true, //this option for allowing user to select from year range
minDate: 0,
onClose: function(current_time, $input){
var endDate = $("#valid_to").val();
if(startDate>endDate){
alert('Please select correct date');
}
}
});
});
使用属性调用P类:
class P:
def __init__(self, x):
self.x = x
@property
def x(self):
return self.__x
@x.setter
def x(self, x):
if x < 0:
self.__x = "Negative"
else:
self.__x = "Positive"
这是我的问题,我不明白为什么在Python 2.7中不执行setter但是,如果你在Python3编辑器中检查这个代码,则运行print&#34; Positive&#34;。我该怎么办?
答案 0 :(得分:0)
如果没有继承Python 2中的object
,您就会获得classobj
旧版“经典版”。类,而不是新的样式类。
新式类,即在Python 2中明确继承自object
的类,支持描述符。在python 3中,这种继承是隐式的。
简而言之,继承自object
。