Python obtient des informations sur les objets

En plus du nom et du sexe, tout paramètre de mot clé supplémentaire peut être fourni et lié à l'instance,

class Person(object):
    def __init__(self, name, gender, **kwargs):
        self.name = name
        self.gender = gender
        for k, v in kwargs.items():
            setattr(self, k, v)
xiaoming = Person('xiaoming', 'M', age = 18, course = 'Python')
print(xiaoming.name, xiaoming.gender, xiaoming.age, xiaoming.course)

Grâce à la fonction type (), le type de la variable peut être obtenu.

n = 1
s = 'this is a string'
type(n) # ==> <class 'int'>
type(s) # ==> <class 'str'>
class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

class Student(Person):
    def __init__(self, name, gender, score):
        super(Student, self).__init__(name, gender)
        self.score = score

p = Person('Alice', 'Female')
s = Student('Bob', 'Male', 100)
type(p) # ==> <class '__main__.Person'>
type(s) # ==> <class '__main__.Student'>

Grâce à la méthode dir (), vous pouvez obtenir tous les attributs de la variable:

n = 1
dir (n)
[' abs ', ' add ', ' and ', ' bool ', ' ceil ', ' class ', ' delattr ', ' dir ', ' divmod ', ' doc ', ' eq ',' flotter ',…]

s = 'ceci est une chaîne'
dir (s)
[' add ', ' class ', ' contains ', ' delattr ', ' dir ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ',' getitem ',' getnewargs ',' gt ',' hash ',' init ',' init_subclass ',' iter ',' le ',' len ',' lt ',' mod ',' mul ' , ' ne',' new ',…]
De nombreux attributs listés dans dir commencent et se terminent par un trait de soulignement. Ce sont des méthodes spéciales, appelées méthodes intégrées. Nous en apprendrons plus sur ces méthodes plus tard.
Et pour les objets personnalisés:

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
    def who(self):
        return 'I am a Person, my name is {}'.format(self.name)

p = Person('Alice', 'Female')
dir(p)
[' class ', ' delattr ', ' dict ', ' dir ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ', ' gt ', ' hash ', ' init ', ' init_subclass ' ' le ', ' lt ', ' Module ', ' ne ', ' nouveau ', ' réduire ', ' reduce_ex ', ' rééd ', ' setattr ', ' sizeof ', ' str ','subclasshook ',' lowref ',' gender ',' name ',' who ']

Pour les variables d'instance, dir () renvoie tous les attributs d'instance, y compris les attributs avec une signification spéciale telle que __class__. Notez que la méthode qui est également un attribut de p.
Les attributs renvoyés par dir () sont une liste de chaînes. Si vous connaissez un nom d'attribut, vous devez utiliser getattr () et setattr () pour obtenir ou définir les attributs de l'objet.

>>> getattr (p, 'name') # Récupère l'attribut name'Alice
'

setattr (p, 'name', 'Adam') # Définir un nouvel attribut de nom
s.name'Adam
'

getattr (s, 'age') # Récupère l'attribut age, mais l'attribut n'existe pas, et une erreur est signalée:
Traceback (dernier appel en dernier):
Fichier “”, ligne 1, dans
AttributeError: l'objet 'Person' a aucun attribut 'âge'

getattr (s, 'age', 20) # Récupère l'attribut age, si l'attribut n'existe pas, renvoie la valeur par défaut 20:
20

Je suppose que tu aimes

Origine blog.csdn.net/angelsweet/article/details/114583221
conseillé
Classement