Any name appearing within a class body that starts with two underscores and does not end with two underscores automatically gets _TheNameOfTheClass
prepended to it. Methods or attributes so named are supposed to be class-internal; if you want to access them from subclasses or other external code, you have to add the _TheNameOfTheClass
prefix manually.
It looks like __RollSkillMenu
isn't supposed to be internal to the Dice
class. If so, then don't make the name start with two underscores. Just use one, or if it's supposed to be part of the public interface, don't use any underscores at all. In fact, you may want to consider moving it out of the class entirely.
If it is supposed to be internal to the Dice
class, then stop trying to access it from SkillCheckResult
.