More On the Strange Problem
MRAB
python at mrabarnett.plus.com
Wed Dec 23 14:03:36 EST 2009
Victor Subervi wrote:
> I've isolated the problem in the print-out at the bottom of this post.
> It occurs when these values are passed:
>
> ['LastDatePrice', 'date', '10', 'yyyy/mm/dd', None],
>
> Since this is the first datetime that is passed, it would appear to be
> associated with such values, which are processed thus:
>
> elif typeName == 'datetime':
Where does the value of typeName come from?
> print "<input type='text' width='%s' maxlength='%s' name='%s'
> value='%s' /> " \
> "<i>This field takes a datetime up to %s alphanumeric characters
> inclusive.</i>" \
> % (shortNum, str(typeNum), colName, theVal, str(typeNum))
>
> colName == 'LastDatePrice'
> typeNum = 10
>
> elif 10 < int(typeNum) < 20:
If typeNum is 10 then 10 < int(typeNum) < 20 is False.
> shortNum = '10'
>
> Therefore...
> shortNum = '10'
>
> if whatDo == 'insert':
> theVal = defaultVal
> val = defaultVal
>
What's the difference between theVal and val? The names don't help me!
:-)
> Since whatDo == 'insert'...
> and
> val = 'yyyy/mm/dd'
> therefore
> theVal = None
>
> Now, this value of None doesn't cause any problems with the other values
> printed out. This is the code:
>
> print 'printTheForm: ', descrProds, '<br />'
> for value in descrProds:
> print 'value: ', value, '<br />'
>
> that produces this print-out:
>
> printTheForm: [['ID', 'tinyint', '5', '0', None], ['SKU', 'varchar',
> '40', '', None], ['Category', 'varchar', '40', '', None], ['Name',
> 'varchar', '50', '', None], ['Title', 'varchar', '100', '', None],
> ['Description', 'mediumtext', '100', '', None], ['Price', 'float', '8',
> '0.0', None], ['SortFactor', 'int', '4', '0', None], ['Availability',
> 'tinyint', '1', '0', '1'], ['OutOfStock', 'tinyint', '1', '0', '0'],
> ['ShipFlatFee', 'float', '5', '0.0', '0.00'], ['ShipPercentPrice',
> 'tinyint', '2', '0', '0'], ['ShipPercentWeight', 'tinyint', '2', '0',
> '0'], ['Associations', 'varchar', '40', '', None], ['TempPrice',
> 'tinyint', '1', '0', None], ['LastDatePrice', 'date', '10',
> 'yyyy/mm/dd', None], ['Weight', 'float', '7', '0.0', None], ['Metal',
> 'enum', ['14k gold', '18k gold', 'white gold', 'silver', 'tungsten',
> 'titanium'], '', None], ['PercentMetal', 'tinyint', '2', '0', None],
> ['colorsShadesNumbersShort', 'set', [''], '', None]]
> value: ['ID', 'tinyint', '5', '0', None]
> value: ['SKU', 'varchar', '40', '', None]
> value: ['Category', 'varchar', '40', '', None]
> value: ['Name', 'varchar', '50', '', None]
> value: ['Title', 'varchar', '100', '', None]
> value: ['Description', 'mediumtext', '100', '', None]
> value: ['Price', 'float', '8', '0.0', None]
> value: ['SortFactor', 'int', '4', '0', None]
> value: ['Availability', 'tinyint', '1', '0', '1']
> value: ['OutOfStock', 'tinyint', '1', '0', '0']
> value: ['ShipFlatFee', 'float', '5', '0.0', '0.00']
> value: ['ShipPercentPrice', 'tinyint', '2', '0', '0']
> value: ['ShipPercentWeight', 'tinyint', '2', '0', '0']
> value: ['Associations', 'varchar', '40', '', None]
> value: ['TempPrice', 'tinyint', '1', '0', None]
> value: ['LastDatePrice', 'date', '10', 'yyyy/mm/dd', None]
>
> If in fact the problem has to do with the None value, how can I easily
> substitute a different value? I tried:
>
> if theVal == None:
The Pythonic way is to use "is" when comparing with singletons like
None.
> theVal = ''
>
> but that didn't capture it.
>
What do you mean by "didn't capture it"?
More information about the Python-list
mailing list