Найти - Пользователи
Полная версия: Как правильно инициализировать родителя?
Начало » Python для новичков » Как правильно инициализировать родителя?
1
KULINAR847
 # Как правильно инициализировать родителя?
class A:
	def __init__(self, parent=None):
		self.a = 1
class C(A):
	def __init__(self, parent=None):
		super().__init__(parent)
		
a = A() 		# Создали новый инстанс
a.a = 10		# Поменяли внутренние аттрибуты
c = C(a)		# Хотим унаследовать с аттрибутом 10
print(c.a)		# Но на выходе = 1
FishHook
KULINAR847
По-моему, вы путаетесь в определениях. a = A() - это объект, то есть экземпляр класса. Классы наследуются от классов, не от экземпляров. Вот это - ерунда, так не бывает c = C(a).
KULINAR847
 class A:
	def __init__(self, parent=None):
		self.a = 1
		if parent is not None:
			self.a = parent.a 	# Если класс A имеет много параметров
							# Как сделать "self = parent" ?
class C(A):
	def __init__(self, parent=None):
		super().__init__(parent)
		
a = A() 		
a.a = 10		
c = C(a)		
print(c.a)		# Тогда на выходе = 10 что и необходимо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB