Как получить доступ к значению объекта класса - PullRequest
0 голосов
/ 03 февраля 2020

Код

from math import factorial as fact

class dm:

def __init__(self,num):

    #if type(num)==type(1):
        self.num=num

def fact(self):

    return(fact(self.num))

def show(self):
    return(self.num)

def __getitem__(self,num):
    return(self.num)
num=5
print(num)
num=dm(num)
print(num)

Вывод:

5
<__main__.dm object at 0x06D9A790>

Почему это не так:

5
5

Веди меня.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Попробуйте написать

print(num.show()) instead

num - это объект класса Dm . Но чтобы получить доступ к значению в объекте, вы должны использовать метод show () класса.

Полезно также называть свои классы заглавными буквами.

1 голос
/ 03 февраля 2020

Вы установили num для объекта вашего класса dm. Вот почему при печати num после строки num = dm(num) вы получаете атрибут <__main__.dm object at 0x06D9A790>

Если вы хотите вывести значение num, которое инициализируется в вашем классе;

print(num.num)

Если вы хотите вызвать функцию fact();

print(num.fact(5))

Когда вы определяете var = class(), вы устанавливаете var в быть ссылкой на этот класс, поэтому вы получаете объект обратно.

Некоторое легкое чтение может помочь вам получить asp понятия классов; Python Занятия

Счастливого обучения:)

...