Funktionen Hasattr(), getattr(), setattr(), delattr() und Beispielcodes in Python3

不言
Freigeben: 2018-04-18 11:10:41
Original
1988 Leute haben es durchsucht

Dieser Artikel stellt die Funktionen hasattr(), getattr(), setattr() und delattr() in Python3 im Detail anhand von Beispielcode vor. Er ist sehr gut und hat Referenzwert.

hasattr()-Funktion

hasattr()-Funktion wird verwendet, um zu bestimmen, ob das entsprechende Attribut enthalten ist

Syntax:

hasattr(object,name)

Parameter:

Objekt--Objekt

Name--Zeichenfolge, Attributname

Rückgabewert:

if Wenn das Objekt dieses Attribut hat, gibt es True zurück, andernfalls gibt es False zurück

Beispiel:


class People:
  country='China'
  def __init__(self,name):
    self.name=name
  def people_info(self):
    print('%s is xxx' %(self.name))
obj=People('aaa')
print(hasattr(People,'country'))
#返回值:True
print('country' in People.__dict__)
#返回值:True
print(hasattr(obj,'people_info'))
#返回值:True
print(People.__dict__)
##{&#39;__module__&#39;: &#39;__main__&#39;, &#39;country&#39;: &#39;China&#39;, &#39;__init__&#39;: <function People.__init__ at 0x1006d5620>, &#39;people_info&#39;: <function People.people_info at 0x10205d1e0>, &#39;__dict__&#39;: <attribute &#39;__dict__&#39; of &#39;People&#39; objects>, &#39;__weakref__&#39;: <attribute &#39;__weakref__&#39; of &#39;People&#39; objects>, &#39;__doc__&#39;: None}
Nach dem Login kopieren


getattr()-Funktion

Beschreibung:

getattr()-Funktion wird verwendet, um einen Objektattributwert zurückzugeben

Syntax:

getattr(object,name,default)

Parameter:

Objekt--Objekt

Name--Zeichenfolge, Objektattribut

default – Standardrückgabewert, wenn nicht. Die Bereitstellung dieses Parameters löst einen AttributeError aus, wenn kein Attribut vorhanden ist.

Rückgabewert:

Objektattributwert zurückgeben


class People:
  country=&#39;China&#39;
  def __init__(self,name):
    self.name=name

  def people_info(self):
    print(&#39;%s is xxx&#39; %(self.name))
obj=getattr(People,&#39;country&#39;)
print(obj)
#返回值China
#obj=getattr(People,&#39;countryaaaaaa&#39;)
#print(obj)
#报错
# File "/getattr()函数.py", line 32, in <module>
#   obj=getattr(People,&#39;countryaaaaaa&#39;)
# AttributeError: type object &#39;People&#39; has no attribute &#39;countryaaaaaa&#39;
obj=getattr(People,&#39;countryaaaaaa&#39;,None)
print(obj)
#返回值None
Nach dem Login kopieren


setattr()-Funktion

Beschreibung:

setattr-Funktion, die zum Festlegen von Attributwerten verwendet wird. Das Attribut muss vorhanden sein

Syntax:

setattr(object,name,value)

Parameter:

Objekt--Objekt

Name--Zeichenfolge, Objektattribut

Wert--Attributwert

Rückgabewert:

Keine


class People:
  country=&#39;China&#39;
  def __init__(self,name):
    self.name=name
  def people_info(self):
    print(&#39;%s is xxx&#39; %(self.name))
obj=People(&#39;aaa&#39;)
setattr(People,&#39;x&#39;,111) #等同于People.x=111
print(People.x)
#obj.age=18
setattr(obj,&#39;age&#39;,18)
print(obj.__dict__)
#{&#39;name&#39;: &#39;aaa&#39;, &#39;age&#39;: 18}
print(People.__dict__)
#{&#39;__module__&#39;: &#39;__main__&#39;, &#39;country&#39;: &#39;China&#39;, &#39;__init__&#39;: <function People.__init__ at 0x1007d5620>, &#39;people_info&#39;: <function People.people_info at 0x10215d1e0>, &#39;__dict__&#39;: <attribute &#39;__dict__&#39; of &#39;People&#39; objects>, &#39;__weakref__&#39;: <attribute &#39;__weakref__&#39; of &#39;People&#39; objects>, &#39;__doc__&#39;: None, &#39;x&#39;: 111}
Nach dem Login kopieren


delattr( ) Funktion

Beschreibung:

delattr-Funktion wird zum Löschen von Attributen verwendet

delattr(x,'foobar) entspricht del x.foobar

Syntax:

setattr(object,name)

Parameter:

Objekt – Objekt

Name – muss eine Eigenschaft des Objekts sein

Rückgabewert:

Keine

Beispiel:


class People:
  country=&#39;China&#39;
  def __init__(self,name):
    self.name=name
  def people_info(self):
    print(&#39;%s is xxx&#39; %(self.name))
delattr(People,&#39;country&#39;) #等同于del People.country
print(People.__dict__)
{&#39;__module__&#39;: &#39;__main__&#39;, &#39;__init__&#39;: <function People.__init__ at 0x1006d5620>, &#39;people_info&#39;: <function People.people_info at 0x10073d1e0>, &#39;__dict__&#39;: <attribute &#39;__dict__&#39; of &#39;People&#39; objects>, &#39;__weakref__&#39;: <attribute &#39;__weakref__&#39; of &#39;People&#39; objects>, &#39;__doc__&#39;: None}
Nach dem Login kopieren


Ergänzendes Beispiel:


class Foo:
  def run(self):
    while True:
      cmd=input(&#39;cmd>>: &#39;).strip()
      if hasattr(self,cmd):
        func=getattr(self,cmd)
        func()
  def download(self):
    print(&#39;download....&#39;)
  def upload(self):
    print(&#39;upload...&#39;)
# obj=Foo()
# obj.run()
Nach dem Login kopieren

Verwandte Empfehlungen:

So zeigen Sie das Numpy-Array an Attribute in der Python3-Bibliothek


Das obige ist der detaillierte Inhalt vonFunktionen Hasattr(), getattr(), setattr(), delattr() und Beispielcodes in Python3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!