Обеспечить следующие методы класса:
1. конструктор, принимающий 4 действительных числа: радиус, и 3 координаты центра
шара. Если конструктор вызывается без аргументов, создать объект сферы с
единичным радиусом и центром в начале координат. Если конструктор
вызывается с 1 аргументом, создать объект сферы с соответствующим радиусом и
центром в начале координат.
2. метод get_volume (), который возвращает действительное число — объем шара, ограниченной
текущей сферой.
3. метод get_square (), который возвращает действительное число — площадь внешней поверхности
сферы.
4. метод get_radius (), который возвращает действительное число — радиус сферы.
5. метод get_center (), который возвращает тьюпл с 3 действительными числами — координатами
центра сферы в том же порядке, в каком они задаются в конструкторе.
6. метод set_radius (r), который принимает 1 аргумент — действительное число, и меняет радиус
текущей сферы, ничего не возвращая.
7. метод set_center (x, y, z), который принимает 3 аргумента — действительных числа, и меняет
координаты центра сферы, ничего не возвращая. Координаты задаются в том
же порядке, что и в конструкторе.
8. метод is_point_inside (x, y, z), который принимает 3 аргумента — действительных числа —
координаты некоторой точки в пространстве (в том же порядке, что и в конструкторе), и
возвращает логическое значение True или False в зависимости от того, находится ли
эта точка внутри сферы.
from math import pi
class Sphere:
def __init__(self, *arg):
if len(arg) == 0:
arg = (1, 0, 0, 0)
elif len(arg) == 1:
arg = (arg[0], 0, 0, 0)
else:
raise TypeError # raise TypeError("<Последняя строчка лога об ошибке>")
self.r, self.x, self.y, self.z = arg
def get_volume(self):
return (self.r ** 3) * pi * 4 / 3
def get_square(self):
return (self.r ** 2) * pi * 4
def get_radius(self):
return self.r
def get_center(self):
return (self.x, self.y, self.z)
def set_radius(self, r):
self.r = r
def set_center(self, x, y, z):
self.x = x
self.y = y
self.z = z
def is_point_inside(self, x, y, z):
return (self.x-x)**2 + (self.y-y)**2 + (self.z-z)**2 < self.r**2