Вот простой пример
from pandas import DataFrame
# Create data set
d = {'Revenue':[100,111,222],
'Cost':[333,444,555]}
df = DataFrame(d)
# mask = Return True when the value in column "Revenue" is equal to 111
mask = df['Revenue'] == 111
print mask
# Result:
# 0 False
# 1 True
# 2 False
# Name: Revenue, dtype: bool
# Select * FROM df WHERE Revenue = 111
df[mask]
# Result:
# Cost Revenue
# 1 444 111
В методе init () класса CustomGenomicFeature вы можете явно вызывать метод init () класса GenomicFeature, просто вызывая super (). init [ 114] ()
class CustomGenomicFeature(GenomicFeature):
def __init__(self,genomic_feature,kikou):
super().__init__(genomic_feature)
self.kikou=kikou
я бы скорее посоветовал использовать __dict__
вместо super
, потому что super не поможет вам скопировать значение атрибутов родительского объекта. Таким образом, вы могли бы сделать что-то вроде этого:
class A():
def __init__(self):
self.x = 1
class B(A):
def __init__(self, a):
super(B, self).__init__()
self.__dict__.update(a.__dict__)
a = A()
b = B(a)
print(b.x) # displays '1'
a.x = 3
b2 = B(a)
print(b2.x) # displays '3'. Without the __dict__update, it would return '1'
Таким образом, вы установите каждый атрибут, который есть у вашего родительского класса, без изменения атрибутов дочернего класса, которых нет у родителя.
В вашем случае:
class CustomGenomicFeature(GenomicFeature):
def __init__(self,genomic_feature_instance,kikou):
super().__init__()
self.__dict__.update(genomic_feature_instance.__dict__)
# Subclass-specific stuff follows
self.kikou=kikou
Другим способом (и, возможно, более чистым) будет использование композиции вместо наследования:
]class CustomGenomicFeature(GenomicFeature):
def __init__(self,genomic_feature_instance,kikou):
# keep ref to the genomic_feature_instance
self._genomic_feature = genomic_feature_instance
# Subclass-specific stuff follows
self.kikou=kikou
@property
def name(self):
return self._genomic_feature.name