On 6/2/2011 12:18 PM, Nick Buchholz wrote:
Hi all,
     I've been wandering through the DOCs for an hour and haven't found a 
solution to this
I'm just starting to convert from 2.5 to 3.2 and I have a problem. I have a 
code that looks like this.

from tkinter  import *
import time
import datetime
import string
import math
import random

print (time.localtime())

def foo():
     print (time.localtime())

Be itself, this works fine in 3.2
>>> import time
>>> def foo(): print (time.localtime())

>>> foo()
time.struct_time(tm_year=2011, tm_mon=6, tm_mday=2, tm_hour=15, tm_min=3, tm_sec=48, tm_wday=3, tm_yday=153, tm_isdst=1)

Add a foo() call in your code too.

class StarDate:

The first thing I would do is make this a new-style class in 2.5.
class StartDate(object):
Make sure your class still works with that change.
('(object)' can be removed or left when running under 3.2.)

     """ implements StarDates regular dates but with output in
     the form: YYYYMMDD:HHMMSS.FFFF
     or represented by a 6-Tuple (Yr, Mon, Day, Hour, Min, Sec)
     """
     def __init__(self, tTuple=None):
         tt=self
         tt.tm_year = tt.tm_mon = tt.tm_mday = tt.tm_hour = 0
         tt.tm_min  = tt.tm_sec = tt.tm_wday = tt.tm_yday = 0
         tt.tm_isdst  = 0
         if type(tTuple) == type(None):
             tTuple = time.localtime()
         elif .......

The two print statements work as expected, printing the tuple of the local time.
The function foo and the StarDate class definition both fail with the error.

    File "starDate.py", line 37 , in foo
       print(time.localtime())
NameError: global name 'time' is not defined

What am I missing?
why doesn't the definition of time at the top level get recognized inside the 
class?

Without seeing the complete traceback and all the code up to line 37 and everything beyond involved in the call chain, I cannot even guess. No possibilities come to mind.

If I can't get a simple two class file working in 3.2,

Many people have had no problem. Again, first convert to newstyle classes in your 2.x code. This rarely makes a difference, but perhaps you so something in the ... part where is does.

> I despair of ever moving to 3.2

Don't there must be something simple but not now obvious.

Please reply directly.

Done, in addition to public posting. Please reply to the public posting so others can learn also.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to