ホームページ > バックエンド開発 > Python チュートリアル > Python3 の Hasattr()、getattr()、setattr()、delattr() 関数とサンプル コード

Python3 の Hasattr()、getattr()、setattr()、delattr() 関数とサンプル コード

不言
リリース: 2018-04-18 11:10:41
オリジナル
2101 人が閲覧しました

この記事では、Python3 の hasattr()、getattr()、setattr()、delattr() 関数をサンプル コードを通して詳しく紹介します。非常に優れており、必要な方は参考にしてください。 hasattr() 関数

hasattr() 関数は、対応する属性が含まれているかどうかを判断するために使用されます 構文:

hasattr(object,name)

パラメータ:

object--オブジェクトhasattr(object,name)

参数:

object--对象

name--字符串,属性名

返回值:

如果对象有该属性返回True,否则返回False

示例:


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}
ログイン後にコピー


getattr()函数

描述:

getattr()函数用于返回一个对象属性值

语法:

getattr(object,name,default)

参数:

object--对象

name--字符串,对象属性

default--默认返回值,如果不提供该参数,在没有对于属性时,将触发AttributeError。

返回值:

返回对象属性值


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
ログイン後にコピー


setattr()函数

描述:

setattr函数,用于设置属性值,该属性必须存在

语法:

setattr(object,name,value)

参数:

object--对象

name--字符串,对象属性

value--属性值

返回值:


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}
ログイン後にコピー


delattr()函数

描述:

delattr函数用于删除属性

delattr(x,'foobar)相当于del x.foobar

语法:

setattr(object,name)

name- -String、属性名

戻り値:

オブジェクトがこの属性を持っている場合はTrueを返し、それ以外の場合はFalseを返します

例:

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}
ログイン後にコピー


getattr()関数

説明:


getattr() 関数は、オブジェクト属性値を返すために使用されます

構文: getattr(object,name,default)

パラメータ:

object--object name -- 文字列、オブジェクト属性

default -- デフォルトの戻り値 このパラメーターが指定されていない場合、属性がない場合に AttributeError がトリガーされます。

戻り値: 🎜🎜戻りオブジェクト属性値 🎜🎜🎜🎜
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()
ログイン後にコピー
🎜🎜🎜🎜🎜🎜setattr() 関数 🎜🎜🎜🎜説明: 🎜🎜setattr 関数、属性値の設定に使用され、属性は存在する必要があります🎜🎜構文:🎜🎜setattr(object,name,value)🎜🎜パラメータ: 🎜🎜object -- オブジェクト 🎜🎜name -- 文字列、オブジェクト属性 🎜🎜value -- 属性値 🎜🎜戻り値: 🎜🎜なし🎜🎜🎜🎜rrreee🎜🎜🎜🎜🎜🎜delattr()関数🎜🎜🎜🎜説明: 🎜🎜delattr関数は属性を削除するために使用されます🎜🎜delattr(x,'foobar)はdel xと同等です。ふーばー🎜 🎜文法:🎜🎜setattr(object,name)🎜🎜パラメータ: 🎜🎜object--object 🎜🎜name--オブジェクトの属性である必要があります🎜🎜戻り値: 🎜🎜なし🎜🎜例: 🎜🎜 🎜🎜rrreee🎜🎜🎜🎜 補足例: 🎜🎜🎜🎜rrreee🎜🎜🎜🎜🎜 関連する推奨事項: 🎜🎜🎜 Python3 ライブラリで numpy 配列属性を表示する方法🎜🎜 🎜🎜🎜

以上がPython3 の Hasattr()、getattr()、setattr()、delattr() 関数とサンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート