Найти - Пользователи
Полная версия: Пара вопросов
Начало » Python для новичков » Пара вопросов
1 2
de-signer
Привет.

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

2. pass = ничего не делать, идти дальше?
doza_and
В питоне ничего не объявляется, все только инициализируется
pass да ничего не делать
de-signer
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
Loader.style не определён в классе.
self подразумевает Loader
Никак не въеду в строку Loader.style=Loader.style - это что? Индийский способ инициализации переменной?
pill
style скорее всего в GenericLoader объявлен.
style = self.style - Кто то буквы экономит походу.
doza_and
self подразумевает экземпляр объекта а не Loader- который класс
style = self.style - инициализация локальной в import_curves переменной style
de-signer
Точно… Наследование… Совсем перегрелся…
Спасибо.
de-signer
class MyClass:
name=''
def __init__(self, name='', duplicate=None, **kw):
...
for key, value in kw.items():
setattr(self, key, value)

def Copy(self):
1 return self.__class__.(duplicate=self)
2 return MyClass(duplicate=self)
def IsEmpty(self):
return not self.__dict__
1. Что за определение **kw? Что означают две звёздочки? Указатель на указатель или в Python они имеют другой смысл?
2. Пронумерованые строки: в оригинале 1 , почему нельзя написать 2
3. Какой сакральный смысл в методе IsEmpty? __dict__ уже не пуст. Там как минимум переменная name.
4. В чем различие между var = {} и var = . Квадратные скобки - пустой массив, а фигурные?

Заранее благодарен за ответы.
Carzil
1. **kw - это именованные аргументы (http://ru.wikibooks.org/wiki/%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA_Python_2.6#.D0.98.D0.BC.D0.B5.D0.BD.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B0.D1.80.D0.B3.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_.5B19.5D)
4. var = - просто массив
var = {} - ассоциативный массив
truporez
Не массив, а список. Не ассоциативный массив, а словарь. А вообще с такими вопросами лучше к Лутцу.
Люблю понудеть :)
Carzil
truporez
Не массив, а список. Не ассоциативный массив, а словарь. А вообще с такими вопросами лучше к Лутцу.
Люблю понудеть
Зачем же пугать человека непонятными словарями и списками? А если сказать ассоциативный массив и просто массив, то поймут все.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB