Форум геймеров и читеров 4cheaT
Реклама:

F.A.Q. Вопросы и ответы. Python и Python в WoT

Закрытая тема.
  1. Cтатус:
    Онлайн
    Регистрация:
    15.06.2015
    Сообщений:
    67
    Благодарностей:
    46
    Мнения:
    8
    Репутация:
    24 [+/-]
    Баланс:
    0
    Новое
    F.A.Q. Вопросы и ответы. Python и Python в WoT

    Реклама:
    Немного отвлеченный вопрос из области моих незнаний.

    Расскажите пожалуйста про файлы CameraNode.pyc и __init__.pyc которые также присутствуют и в этом моде.

    Дело в том, что эти файлы присутствуют и в других модах и модпаках, которые я устанавливаю. Эти файлы, как я заметил, имеют разный размер, сталобыть они разные.

    Моды я могу устанавливать в разном порядке, скажем, сперва на основе какого то модпака я закидываю все скопом, а потом добавляю отдельные моды. Файлы с одинаковыми именами затираются. И в каком бы я их порядке не ставил на работоспособность модов это не влияет (я не замечаю разницы).

    Как это работает и как правильно с ними поступать?
     
    Последний раз редактировалось Eraserhead; 2015-08-06 в 17:17.
    Поддержи проект -поделись!
    3 пользователя(ей) сказали cпасибо:
    ArtyKiller (2015-12-16), Patriot_42 (2015-08-07), Strell (2015-11-27)
  2. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое

    Это файлы загрузчики. Они могут отличаться по размеру, но функционально они делают одно и то же. __init__.pyc, например, содержит всего одну команду на питоне pass, что означает - "ничего не делать", но чтоб из текущей папки загружались скрипты этот файл необходим. CameraNode.pyc содержит команды загрузки модов из папки mods, в содержимом могут быть вариации (отсюда разный размер), но суть одинакова. Поэтому не имеет значению из какого источника вы загрузите эти файлы, главное чтоб они присутствовали. Более того, если они уже есть, то не обязательно их копировать.
     
    Поддержи проект -поделись!
    7 пользователя(ей) сказали cпасибо:
    Cep)l( (2015-08-13), DragonWR (2016-09-11), Eraserhead (2015-08-07), Patriot_42 (2015-08-07), RomaStill (2015-08-14), иван лапший (2015-08-06), Юзверь (2015-12-02)
  3. Cтатус:
    Оффлайн
    Регистрация:
    10.06.2015
    Сообщений:
    154
    Благодарностей:
    71
    Мнения:
    38
    Репутация:
    110 [+/-]
    Баланс:
    0
    Новое
    Реклама:
    Зорро, а можно мне тогда тоже? )
    Я пока только начал и сейчас у меня первый затык после бинарных операций.

    вот тут

    class Animal(object):
    def __init__(self,name):
    self.name = name
    zebra = Animal("Jeffrey")

    print zebra.name


    1) класс объект - определяет объект как объект, в смысле, как юнит, способный хранить и значение и функции, либо же имеет какой-то еще смысл?
    2) ок я понимаю что в классе я определяю функцию, которая принимает два аргумента. Но почему далее ниже стоит self.name = name? Что это значит? Правое name - это второй аргумент? Или слева стоит первый аргумент.второй аргумент, а справа яхз что?
    3) и в конце концов - ок, zebra.name вызывается примерно также, как dict.items. Но почему именно так... Где указано что написав zebra.name я получу именно Jeffrey?

    Короче я запутался и буду о-очень благодарен за объяснение ) Или ссылку.

    Я знаю: списки, словари, функции, интеграцию библиотек, бинарные операции
    Остальное пока не трогал. очень извиняюсь за нищенскую терминологию, к сожалению пока путаюсь в понятиях.
     
    Последний раз редактировалось Пешеход; 2015-08-06 в 19:29.
    Поддержи проект -поделись!
  4. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое
    Ничего сложного.
    self - нужен, чтоб иметь возможность обращаться к самому себе, т.е. self - это объект собственный и идентичен Animal в данном контексте. self кстати - просто принятая форма, вместо self можно использовать и другие названия, например если self заменить на selfy, то это тоже сработает. Если использовать декоратор @ staticmethod, то можно вообще без первого аргумента обойтись, а к методу обращаться через имя объекта, будет выглядеть так:

    PHP код:
    class Animal:
        
        @ 
    staticmethod
        def __init__
    (name):
            
    Animal.name name

    zebra 
    Animal("Jeffrey")

    print 
    zebra.name 
    и кстати (object) можно опустить. В питоне всё object по умолчанию.

    "Где указано что написав zebra.name я получу именно Jeffrey? "
    а именно в строке self.name = name и указано.

    вы передали через метод __init__ классу Animal (он же self внутри себя) аргумент (строка "Jeffrey") и присвоили его методу name, поэтому у вас zebra.name = Animal.name (self.name внутри класса) содержит строку "Jeffrey"

    Вот так всё просто.

    ЗЫ. Надо только тему другую для таких вопросов создавать
     
    Последний раз редактировалось ZorroJan; 2015-08-06 в 20:36.
    Поддержи проект -поделись!
    5 пользователя(ей) сказали cпасибо:
    Cep)l( (2015-08-13), marich.d (2015-12-16), иван лапший (2015-08-06), Пешеход (2015-08-06), Юзверь (2015-12-02)
  5. Cтатус:
    Оффлайн
    Регистрация:
    10.06.2015
    Сообщений:
    154
    Благодарностей:
    71
    Мнения:
    38
    Репутация:
    110 [+/-]
    Баланс:
    0
    Новое
    Это у вас просто, а я весь день гугл мучаю. Всё понял наконец-то. Вернее, почти всё, но это я сейчас добью манами ))
    Спасибо!

    ЗЫ. а подфорум же есть по вопросам о питоне, просто я подумал, эта информация не будет сильно ценной для последующих разборок в нём )
     
    Поддержи проект -поделись!
  6. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое
    F.A.Q. Вопросы и ответы. Python и Python в WoT

    Решил создать тему в формате FAQ, для тех кому интересно как работают моды и что может Питон, ну и обо всём, что связано с игровым движком WOT. Задавайте вопросы, смогу отвечу.
     
    Поддержи проект -поделись!
    12 пользователя(ей) сказали cпасибо:
    Показать/Скрыть список поблагодаривших
  7. Cтатус:
    Оффлайн
    Регистрация:
    11.02.2015
    Сообщений:
    20
    Благодарностей:
    8
    Мнения:
    0
    Репутация:
    5 [+/-]
    Баланс:
    0
    Новое
    Какой софт нужен для написания мода?
     
    Поддержи проект -поделись!
    Пользователь сказал cпасибо:
    Cep)l( (2015-08-13)
  8. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое
    [Ссылки могут видеть только зарегистрированные пользователи. ] - достойный, бесплатный продукт, который, на данный момент, лучше всего приспособлен для написания, редактирования и обфусцирования скриптов (модов) на Python. Более того, он написан специально для этих целей.
     
    Поддержи проект -поделись!
    7 пользователя(ей) сказали cпасибо:
    Alex0307 (2015-11-01), Boboshka (2015-12-30), Cep)l( (2015-08-13), HEIS_NBERG (2015-08-07), MABPEX58 (2015-08-21), ПАЛЫЧ (2015-08-07), Юзверь (2015-12-02)
  9. Cтатус:
    Онлайн
    Регистрация:
    13.04.2015
    Сообщений:
    1,224
    Благодарностей:
    1,773
    Мнения:
    342
    Репутация:
    613 [+/-]
    Баланс:
    0
    Новое
    Вот посмотри:
    http://4cheat.ru/showthread.php?t=39918
     
    Поддержи проект -поделись!
    Пользователь сказал cпасибо:
    Eraserhead (2015-08-14)
  10. Cтатус:
    Оффлайн
    Регистрация:
    10.06.2015
    Сообщений:
    154
    Благодарностей:
    71
    Мнения:
    38
    Репутация:
    110 [+/-]
    Баланс:
    0
    Новое
    Ну короче. Я получил RHCE. И теперь могу вернуться к питону. Еще разок про классы:


    PHP код:
    class Animal(object):
        
    """Makes cute animals."""
        
    is_alive True
        def __init__
    (selfnameage):
            
    self.name name
            self
    .age age

     
    # Add your method here!

        
        
    def description(self):
            print 
    self.name
            
    print self.age
            
    hippo 
    Animal("Hujak"1239)
    hippo.description() 
    Почему я должен использовать print self.name а не print Animal.name?
     
    Последний раз редактировалось Пешеход; 2015-08-14 в 15:31.
    Поддержи проект -поделись!
  11. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое
    На самом деле это одно и тоже, но практически принято писать self. В этом случае вы сможете переименовать класс без последствий.
     
    Поддержи проект -поделись!
    2 пользователя(ей) сказали cпасибо:
    Пешеход (2015-08-14), Юзверь (2015-12-02)
  12. Cтатус:
    Оффлайн
    Регистрация:
    10.06.2015
    Сообщений:
    154
    Благодарностей:
    71
    Мнения:
    38
    Репутация:
    110 [+/-]
    Баланс:
    0
    Новое
    Traceback (most recent call last):
    File "python", line 16, in <module>
    File "python", line 11, in description
    AttributeError: type object 'Animal' has no attribute 'name'

    :(

    Это если писать def description(self):
    print Animal.name
    print Animal.age
     
    Поддержи проект -поделись!
  13. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое
    Ты определяешь класс как self в строке def description(self) и работаешь с ним
    PHP код:
        def description(self):
            print 
    self.name
            
    print self.age 
    а можешь написать хоть так:
    PHP код:
    class Animal(object):
        
    """Makes cute animals."""
        
    is_alive True
        def __init__
    (selfnameage):
            
    self.name name
            self
    .age age

     
    # Add your method here!


        
    def description(selfyrius):
            print 
    selfyrius.name
            
    print selfyrius.age

    hippo 
    Animal("Hujak"1239)
    hippo.description() 
    и будет работать
     
    Поддержи проект -поделись!
    Пользователь сказал cпасибо:
    Пешеход (2015-08-14)
  14. Cтатус:
    Оффлайн
    Регистрация:
    10.06.2015
    Сообщений:
    154
    Благодарностей:
    71
    Мнения:
    38
    Репутация:
    110 [+/-]
    Баланс:
    0
    Новое
    Да, понятно, это обхяснено в учебнике. Мне не понятно, почему метод принимает первый аргумент - self, его значение в виде класса, но далее я могу работать только с аргументом, а с его значение напрямую не могу.

    Для меня self = Animal. А раз это значение уже есть в методе и один раз он смог с ним поработать, то я предполагаю, что смогу и дальше. Но не могу.

    Скажем тут:

    variable1 = "a"
    variable2 = "b"

    variable3 = variable1

    Далее мне не придется каждый раз для вывода "a" ссылаться на variable3, я с тем же успехом могу и с variable1 работать.


    Я пытаюсь понять, что на самом деле делает передача аргумента self (или аргумента с любым другим именем на 1 месте, как вы заметили), зачем оно нужно в описании класса.

    Я не тупой, правда ))
     
    Поддержи проект -поделись!
  15. Cтатус:
    Онлайн
    Регистрация:
    15.02.2014
    Сообщений:
    2,761
    Благодарностей:
    8,683
    Мнения:
    929
    Репутация:
    2041 [+/-]
    Баланс:
    1200
    Новое
    вот вариант без первого аргумента:
    PHP код:
    class Animal(object):
        
    """Makes cute animals."""
        
    is_alive True
        
    [MENTION=16006]sTa[/MENTION]ticmethod
        def __init__
    (nameage):
            
    Animal.name name
            Animal
    .age age

     
    # Add your method here!


        
    [MENTION=16006]sTa[/MENTION]ticmethod
        def description
    ():
            print 
    Animal.name
            
    print Animal.age

    hippo 
    Animal("Hujak"1239)
    hippo.description() 
    оно нужно чтоб определить переменную для последуюцего обращения. Дело в том, что обычная переменная работает только внутри метода и уничтожается за его пределами. Для работы внутри класса она должна быть отпределена внутри его самого - это делается с помощью self , то же касается и методов. Все они работают по одному принципу, т.к. они все объекты. Но... правило объектности подразумевает ограничения использования всего того, что создано в объекте, определено и работает только внутри его, если хочешь использовать что-то выше, то его необходимо и определить выше. Простая иерархическая система.
     
    Последний раз редактировалось ZorroJan; 2015-08-14 в 19:32.
    Поддержи проект -поделись!
Закрытая тема.
Главная - Перед категорией ММОРПГ
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Похожие темы
Ответов
Последнее сообщение
  1. Ответов:
    0
    Cheat_by_APiM
    2016-04-20 22:57
  2. python.log

    Dalanin, Вопросы по программированию на Python
    Ответов:
    2
  3. Вопросы по программированию модификаций на Python

    ZorroJan, Вопросы по программированию на Python
    Ответов:
    122
    ZorroJan
    2015-10-25 23:53
  4. Python 2.7

    analogopatom, Вопросы по программированию на Python
    Ответов:
    5
    analogopatom
    2015-07-18 13:03
  5. python

    CTHUTQ_SI, Вопросы по модам World of Tanks
    Ответов:
    4
    CTHUTQ_SI
    2014-09-30 23:36