W
wolfgang haefelinger
Hi,
I wonder whether someone could explain me a bit what's going on here:
import sys
# I'm running Mandrake 1o and Windows XP.
print sys.version
## 2.3.3 (#2, Feb 17 2004, 11:45:40) [GCC 3.3.2 (Mandrake Linux 10.0
3.3.2-6mdk)]
## 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)]
print "sys.getdefaultencoding = ",sys.getdefaultencoding()
# This prints always "ascii" ..
## just a class
class Y:
def __str__(self):
return self.c
## define unicode character (ie. string)
gamma = u"\N{GREEK CAPITAL LETTER GAMMA}"
y = Y()
y.c = gamma
## works fine: prints greek capital gamma on terminal on windows (chcp 437).
## Mandrake 1o nothing gets printed but at least no excecption gets thrown.
print gamma # (1)
## same as before ..
print y.__str__() # (2)
## encoding error
print y # (3) ??????????????
## ascii encoding error ..
sys.stdout.write(gamma) # (4)
I wonder especially about case 2. I can see that "print y" makes a call to
Y.__str__() . But Y.__str__() can be printed?? So what is 'print' exactly
doing?
Thanks for any help,
Wolfgang.
I wonder whether someone could explain me a bit what's going on here:
import sys
# I'm running Mandrake 1o and Windows XP.
print sys.version
## 2.3.3 (#2, Feb 17 2004, 11:45:40) [GCC 3.3.2 (Mandrake Linux 10.0
3.3.2-6mdk)]
## 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)]
print "sys.getdefaultencoding = ",sys.getdefaultencoding()
# This prints always "ascii" ..
## just a class
class Y:
def __str__(self):
return self.c
## define unicode character (ie. string)
gamma = u"\N{GREEK CAPITAL LETTER GAMMA}"
y = Y()
y.c = gamma
## works fine: prints greek capital gamma on terminal on windows (chcp 437).
## Mandrake 1o nothing gets printed but at least no excecption gets thrown.
print gamma # (1)
## same as before ..
print y.__str__() # (2)
## encoding error
print y # (3) ??????????????
## ascii encoding error ..
sys.stdout.write(gamma) # (4)
I wonder especially about case 2. I can see that "print y" makes a call to
Y.__str__() . But Y.__str__() can be printed?? So what is 'print' exactly
doing?
Thanks for any help,
Wolfgang.