Problem porting class to python3.2
Nick Buchholz
nbuchholz at noao.edu
Thu Jun 2 12:18:18 EDT 2011
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())
print(time.localtime())
class StarDate:
""" 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
or
File "starDate.py", line 103, in __init__
tTuple = time.localtime()
NameError: global name 'time' is not defined
What am I missing? This is a long used and tested file and class that is used in several
more complex python programs.
why doesn't the definition of time at the top level get recognized inside the class?
If I can't get a simple two class file working in 3.2, I despair of ever moving to 3.2
Please reply directly.
Nick
nbuchholz at noao.edu
Day phone: (520) 318-8203
"Time is an illusion, Lunchtime doubly so" - Ford Prefect
Time is an illusion perpetrated by the manufacturers of space.
More information about the Python-list
mailing list