Obtenir uniquement les éléments de sous-classe dans une liste

class Base(object):

	def getAttributeKeys(self):
		"""Défini dans une classe qui hérite de Base
élément(Méthodes et propriétés)Je veux obtenir seulement la clé de
		"""


class Child(Base):

	def __init__(self):
		self.hoge = "hoge"
	
	def fuga(self):
		pass

Dans cet exemple approprié,

ch = Child()
print(ch.getAttributeKeys())   # >>> ['hoge', 'fuga']

Quand tu veux être comme.

Soustraire à l'aide de l'ensemble

http://stackoverflow.com/questions/7136154/python-how-to-get-subclasss-new-attributes-name-in-base-classs-method Je pense qu'il y a plusieurs façons de le faire, mais je me demande si cette façon est personnellement belle.

Les opérations de définition sont faciles à utiliser en Python, alors utilisez ceci Liste d'éléments de sous-classe moins liste d'éléments de classe parent Vous pouvez obtenir une liste de classes enfants comme celle-ci.

class Base(object):

	def getAttributeKeys(self):
		return set(dir(self.__class__)) - set(dir(Base))

(* Le résultat sera défini au lieu de la liste.)

Ceci et cela

ch = Child()
keys = getAttributeKeys()


#Essayez d'obtenir la valeur de l'attribut
key = keys[0] #Supposons que vous choisissiez parmi les clés
attr = ch.getattr(self, key)


#Déterminez s'il s'agit d'une méthode et exécutez
import types
if isinstance(attr, types.MethodType):
	#Puisque attr est une méthode, elle peut être exécutée
	attr()

Veuillez l'utiliser lorsque vous souhaitez importer automatiquement ce qui est défini dans la sous-classe.

Recommended Posts

Obtenir uniquement les éléments de sous-classe dans une liste
Obtenez le nombre d'éléments spécifiques dans la liste python
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Créer une nouvelle liste en combinant des éléments en double dans la liste
Obtenir la liste de codes EDINET en Python
[Python] Obtenir une liste de dossiers uniquement
[Python] Récupérez les fichiers dans le dossier avec Python
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Trier les éléments de la liste dans l'ordre spécifié en Python
[Python] Manipulation d'éléments dans une liste (tableau) [Trier]
Comment obtenir une liste de fichiers dans le même répertoire avec python
Obtenir le nom de fichier dans un dossier à l'aide de glob
Obtenir la taille (nombre d'éléments) de Union Find en Python
[Python] Affiche toutes les combinaisons d'éléments de la liste
Regrouper par éléments consécutifs d'une liste en Python
Méthodes disponibles dans la liste
Obtenir des éléments de liste en Python
[Python] Ne laissez que les éléments commençant par une chaîne de caractères spécifique dans le tableau
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Assurez-vous que tous les éléments de la liste sont les mêmes en Python
En Python, les éléments de la liste sont triés et sortis sous forme d'éléments et de multiples.
Développer une bibliothèque pour obtenir la liste des collections Kindle en Python
Comment obtenir une liste d'exceptions intégrées pour python
Obtenez le nombre d'occurrences pour chaque élément de la liste
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
J'obtiens un UnicodeDecodeError avec mecab-python3
[python] Gérer les fonctions dans une liste
J'obtiens une KeyError dans pyclustering.xmeans
Obtenez le chemin du bureau en Python
Obtenez le chemin du script en Python
Obtenez le chemin du bureau en Python
Obtenez le nom d'hôte en Python
Supprimer plusieurs éléments dans la liste python
Lors de la création d'une matrice dans une liste
Récupérer la chaîne de requête (chaîne de requête) avec Django
Obtenir un booléen avec une requête Flask
Exporter la liste de clés incluse dans S3 Bucket dans un fichier
Comment comparer des listes et récupérer des éléments communs dans une liste
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
Comment obtenir toutes les valeurs possibles dans une expression régulière
[Python] Afficher uniquement les éléments de la liste côte à côte [Vertical, horizontal]
[python] Obtenez le rang des valeurs dans la liste par ordre croissant / décroissant
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Déterminer si tous les éléments de la liste sont présents dans la clé dict
Comment obtenir une liste excluant les éléments dont l'index est i ...?
Créez une fonction pour obtenir le contenu de la base de données dans Go
Obtenez la formule dans le fichier Excel sous forme de chaîne en Python
Obtenez une liste de fichiers dans un dossier avec python sans chemin
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Obtenez l'adresse IP du client avec Django
Mémorandum (Ajouter le nom uniquement aux personnes portant le même nom de famille dans la liste)
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
Obtenez les nièmes valeurs les plus importantes dans Pandas
Mettre ensemble des valeurs consécutives dans la liste
Afficher une liste d'alphabets en Python 3
Obtenez une liste des packages installés dans l'environnement actuel avec python
Obtenir la longueur de caractère la plus longue contenue dans un intervalle dans une arborescence de segments