Ryniek90 wrote:
Got it:
exec('self.' + attr + '=\'' + val + '\'')
That worked. I think it'll do what you want now ;)
Ching-Yun "Xavier" Ho, Technical Artist
Contact Information
Mobile: (+61) 04 3335 4748
Skype ID: SpaXe85
Email: cont...@xavierho.com <mailto:cont...@xavierho.com>
Website: http://xavierho.com/
To bad, that didn't worked in my class. Still the same error:
"
>>> mod.print_module('socket')
Traceback (most recent call last):
File "<pyshell#121>", line 1, in <module>
mod.print_module('socket')
File "<pyshell#118>", line 51, in print_module
module_open = open(self._this_module, 'rb')
IOError: [Errno 2] No such file or directory: ''
>>>
"
:-/
What is the point of the _SetVar method?
Instead of:
self._SetVar(self._this_module, os.path.join(root, f))
just do:
self._this_module = os.path.join(root, f)
(unless I'm misunderstanding what you're trying to do!)
Of course i;ve tried, but still get the same error:
"
>>> mod.print_module('socket')
Traceback (most recent call last):
File "<pyshell#121>", line 1, in <module>
mod.print_module('socket')
File "<pyshell#118>", line 51, in print_module
module_open = open(self.this_module, 'rb')
IOError: [Errno 2] No such file or directory: ''
>>>
"
It looks like private variable have specific naure, that prevent from
traditional editing them.
Still searching for some tuts about private methods and variables.
No. There is nothing special about variables with a leading underscore.
_number
is treated by Python *exactly* the same as
number
. The specific problem in your code above is your _SetVar function,
among the more general problem of not yet having a good understanding of
classes in Python. Keep studying, Python is an awesome language.
I was able to make this work -- hope it helps.
8<-----------------------------------------------------------------------
import os
import sys
class ModPrint(object):
u"""This will be the doc."""
def __init__(self):
self._default_search_path = sys.exec_prefix
def _search_for_module(self, chosen_module, search_path):
for root, dirs, files in os.walk(search_path):
for f in files:
if f == ("%s.py" % chosen_module):
return os.path.join(root, f)
def print_module(self, chosen_module, user_search_path=''):
search_path = user_search_path or self._default_search_path
module = self._search_for_module(chosen_module, search_path)
if module is not None:
module_open = open(module, 'rb')
module_text = module_open.read()
module_open.close()
return module_text
return 'Module not found...'
8<-----------------------------------------------------------------------
--
http://mail.python.org/mailman/listinfo/python-list