Печать атрибута класса

1

Привет, у меня есть следующий код, и я пытаюсь напечатать позицию объекта, я совершенно новичок в python и кодировании, поэтому вам нужно немного помочь! Это код, который у меня есть;

class object:
def __init__(self, x, y, z, vx, vy, vz):
    self.x = x
    self.y = y
    self.z = z
    self.vx = vx
    self.vy = vy
    self.vz = vz

    def position(self):
        return '{} {} {}'.format(self.x, self.y, self.z)


obj_1 = object(random.random(), random.random(), random.random(), 0, 0, 0)


print(obj_1.position())

Появляется следующее сообщение об ошибке:

AttributeError: 'object' object has no attribute 'position'
  • 0
    проверить отступ кода
  • 1
    Попробуйте изменить имя вашего класса и наследовать от объекта. class MyClass(object) и затем obj_1 = MyClass(...) ;)
Показать ещё 2 комментария
Теги:
class
attributeerror

2 ответа

0
Лучший ответ

Является ли отступы причиной проблемы? Я запустил ваш код после исправления отступов, и он работал нормально. Функция __init__ просто требует отступов.

import random

class object:

    def __init__(self, x, y, z, vx, vy, vz):
        self.x = x
        self.y = y
        self.z = z
        self.vx = vx
        self.vy = vy
        self.vz = vz

    def position(self):
        return '{} {} {}'.format(self.x, self.y, self.z)


obj_1 = object(random.random(), random.random(), random.random(), 0, 0, 0)


print(obj_1.position())
0

С фиксированным отступом:

class object:
    def __init__(self, x, y, z, vx, vy, vz):
        self.x = x
        self.y = y
        self.z = z
        self.vx = vx
        self.vy = vy
        self.vz = vz

    def position(self):
        return '{} {} {}'.format(self.x, self.y,self.z)


obj_1 = object(random.random(), random.random(),random.random(), 0, 0, 0)


print(obj_1.position())
  • 0
    Спасибо! Работал как угощение!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню