Страница 1 из 1

[Python]

Добавлено: 2011-05-20 8:06:04
de-signer
Привет.

Я сам не пишу на Python, но надо передрать с него алгоритм. Основы я понимаю но бывают фишки.
1.

Код: Выделить всё

def someproc(self):
  param = self.param
Что будет в переменной param? Она не была ни объявлена ни инициализирована каким нибудь способом.

2. pass = ничего не делать, идти дальше?

Re: [Python]

Добавлено: 2011-05-20 8:29:20
de-signer
Блин. Рок какой-то. Опять вопрос в тему поста не написал....

Re: [Python]

Добавлено: 2011-05-20 8:52:09
FreeBSP
парам как раз тут и объявляется. скорее всего содержит параметры вызова функции someproc

Re: [Python]

Добавлено: 2011-05-20 8:56:55
de-signer
param - это я от балды написал....
ММммм..

Код: Выделить всё

class Loader(GenericLoader):

	def __init__(self, file, filename, match):
		GenericLoader.__init__(self, file, filename, match)
		self.fix_tile = None
		self.fix_clip = 0
		self.fix_lens = ()
		self.object = None
		self.filename =filename
		self.verbosity=False
		self.info = None
		self.file=file

........

	def import_curves(self):
		for obj in self.info.paths_heap:
			if obj==1:
				self.begin_group()
			elif obj==0:
				self.end_group()
			else:
				style = self.style <--------------это как понимать?
				if obj.colorIndex:
					if self.info.fill_data.has_key(obj.colorIndex):
						style.fill_pattern = SolidPattern(self.info.fill_data[obj.colorIndex])
					else:
						style.fill_pattern = EmptyPattern
				else:
					style.fill_pattern = EmptyPattern

Re: [Python]

Добавлено: 2011-05-20 9:00:14
de-signer
Loader.style не определён в классе.
self подразумевает Loader
Никак не въеду в строку Loader.style=Loader.style - это что? Индийский способ инициализации переменной?

Re: [Python]

Добавлено: 2011-05-20 9:40:41
FreeBSP
как я прнимаю - в функции import_curves создается локальная копия self.style
кури про области видимости и локальные переменные

Re: [Python]

Добавлено: 2011-05-20 11:13:37
de-signer
Разобрался.
style объявлена в GenericLoader
эта строка означает GenericLoader.style = self.style - инициализация родительской переменной. Правда не знаю зачем. Разберу код дальше может пойму.