Я новичок в Python. Я получил код образца Python от поставщика программного обеспечения, который расширил свой программный API с помощью boost.python, поэтому мы можем назвать их в Python. Я путать с некоторыми из сегментов, таких как:Как установить подпроцесс переменной?
settings = zoo.AddAnimalSettings(carni_bird_list)
settings.Name = 'birds'
settings.Type = settings.Type.enum.Bird
settings.water_min = 1, units.Litre
settings.food_min = 10, units.Gram
Все имена переменных заменяются быть эти забавные вещи в любом случае, просто для объяснения общей идеи.
Итак, проблема в третьей строке. Как мы можем установить переменную settings.Type
с ее дополнительным свойством settings.Type.enum.Bird
, где enum.Bird
Я полагаю, что это какой-то перечислитель различных видов животных, который является под-свойством settings.Type
?
Я попытался сделать некоторые испытания, чтобы добавить одну строку, следуя выше 5 строк, чтобы увидеть, если enum.Bird
еще есть:
settings.Type = settings.Type.enum.Bird
и он работает нормально. Итак, для этого экземпляра settings
, его свойство sub Type
не перезаписано его дополнительным свойством enum.Bird
, оно все еще знает, что enum.Bird
является его под-собственностью.
Можете ли вы посоветовать, нужно ли мне реализовать эту строку в Python, как я могу это сделать?
Я полагаю, это было бы довольно интересное знание для людей, изучающих Python, поэтому я поднял этот вопрос здесь для обсуждения. Я пытаюсь думать по-С ++, но я не понял этого.
Это действительно странный API, если то, что вы написали, действительно является репрезентативным для образцов кода поставщика. Мы можем сказать вам, что бы это обычно делалось, но если API действительно работает именно так, они, вероятно, создали нечто странное, что существенно изменило ситуацию. Вы уверены, что не смешивали два похожих имени или что-то еще? – user2357112
О, спасибо! Я уверен, что я не смешивал подобные имена. Фактически поставщик использует этот метод повсеместно. –
Есть два способа сделать это. Один из них заключается в назначении атрибута в инициализаторе, а другой - возвращении класса или экземпляра из дескриптора. Оба очень странные. –