您的位置:澳门新葡8455最新网站 > 编程教学 > 特殊成员,Python面向对象特殊成员

特殊成员,Python面向对象特殊成员

发布时间:2019-11-14 16:55编辑:编程教学浏览(143)

    1.类的特有成员之call

    Python面向对象特殊成员,python面向对象

    类的分外成员之call

    #!/usr/bin/env python
    # _*_coding:utf-8 _*_
    class SpecialMembers:
      # 类的构造方法
      def __init__(self):
        print("My Blog is Url: http://yw666.blog.51cto.com")
      # 对象的构造方法
      def __call__(self):
        print("My Name is: Yangwen")
    # 创建一个对象,并且执行类的构造方法
    obj = SpecialMembers()
    # 执行对象的构造方法
    obj()
    # 先执行类的构造方法,然后在执行对象的构造方法
    SpecialMembers()()
    

    输出

    [email protected]:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py
    My Blog is Url: http://yw666.blog.51cto.com
    My Name is: Yangwen
    My Blog is Url: http://yw666.blog.51cto.com
    My Name is: Yangwen
    

    类的独特成员之getitem、setitem、delitem

    #!/usr/bin/env python
    # _*_coding:utf-8 _*_
    class SpecialMembers:
      # 当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值
      def __getitem__(self, item):
        print(item)
      def __setitem__(self, key, value):
        print(key, value)
      def __delitem__(self, key):
        print(key)
    # 创建一个对象
    obj = SpecialMembers()
    # 自动执行__getitem__方法
    obj['value']
    # 自动执行__setitem__方法
    obj['k1'] = "values"
    # 自动执行__delitem__方法
    del obj['key']
    

    输出

    [email protected]:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py
    value
    k1 values
    key
    

    特殊的

    #!/usr/bin/env python
    # _*_coding:utf-8 _*_
    class SpecialMembers:
      # 当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值
      def __getitem__(self, item):
        print(item, type(item), "__getitem__")
      def __setitem__(self, key, value):
        print(key, value)
      def __delitem__(self, key):
        print(key)
    # 创建一个对象
    obj = SpecialMembers()
    # 自动执行__getitem__方法
    obj[1:3] # __getslice__/__getitem__
    # 自动执行__setitem__方法
    obj[1:3] = [11, 22, 33] # __setslice__/__setitem__
    # 自动执行__delitem__
    del obj[1:3] # __delslice__/__delitem__
    

    输出

    [email protected]:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py
    slice(1, 3, None) <class 'slice'> __getitem__
    slice(1, 3, None) [11, 22, 33]
    slice(1, 3, None)
    

    类的奇特成员之dict

    获取类或对象中的全部成员

    #!/usr/bin/env python
    # _*_coding:utf-8 _*_
    class SpecialMembers:
      """
      类的注释
      """
      def __init__(self):
        self.Name = "Ansheng"
        self.Blog = "http://yw666.blog.51cto.com"
    # 获取类中的成员
    print(SpecialMembers.__dict__)
    # 创建一个对象
    obj = SpecialMembers()
    # 获取对象中的成员
    print(obj.__dict__)
    

    输出

    [email protected]:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py
    {'__weakref__': <attribute '__weakref__' of 'SpecialMembers' objects>, '__doc__': 'n  类的注释n  ', '__module__': '__main__', '__dict__': <attribute '__dict__' of 'SpecialMembers' objects>, '__init__': <function SpecialMembers.__init__ at 0x7ff2af2d7598>}
    {'Blog': 'http://yw666.blog.51cto.com', 'Name': 'Yangwen'}
    

    类的超过常规规成员之iter

    二个对象假设得以被for循环迭代时,表达对象中又__iter__格局,且方法中有yield值。

    #!/usr/bin/env python
    # _*_coding:utf-8 _*_
    class SpecialMembers:
      def __iter__(self):
        yield 1
        yield 2
        yield 3
    # 创建一个对象
    obj = SpecialMembers()
    # 如果执行for循环对象时,自动会执行对象的__iter__方法,此时的__iter__就是一个生成器
    for i in obj:
      print(i)
    

    输出

    [email protected]:~$ python3 /home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py
    1
    2
    3
    

    以上所述是作者给我们介绍的Python面向对象特殊成员,希望对我们持有利于,如若咱们有其它疑问请给自个儿留言,作者会及时过来大家的。在这里也非常谢谢大家对帮客之家网址的支撑!

    类的特殊成员之call #!/usr/bin/env python# _*_coding:utf-8 _*_class SpecialMembers: # 类的构造方法 def __init__(self...

     1 class SpecialMembers:
     2     #类的构造方法
     3     def __init__(self):
     4         print("构造了一个方法")
     5     
     6     def __call__(self):
     7         print("构造了一个对象")
     8 
     9 #创建一个对象,并执行类的构造方法
    10 obj = SpecialMembers()
    11 #执行对象的构造方法
    12 obj()
    13 #先执行类的构造方法,然后再执行对象的构造方法
    14 SpecialMembers()()
    

    2.类的特有成员之getitem,setitem,delitem

     1 class SpecialMembers:
     2     #当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值
     3     def __getitem__(self,item):
     4         print(item)
     5     def __setitem__(self,key,value):
     6         print(key,value)
     7     def __delitem__(self,key):
     8         print(key)
     9 
    10 #创建一个对象
    11 obj = SpecialMembers()
    12 #自动执行__getitem__方法
    13 obj['value']
    14 #自动执行__setitem__方法
    15 obj['k1'] = 'values'
    16 #自动执行__delitem__方法
    17 del obj['key']
    

    3.类的特别规成员之dict

    获得类或对象中的全体成员

     1 class SpecialMembers:
     2     """
     3     类的注释
     4     """
     5     def __init__(self,name,age):
     6         self.name = 'abc'
     7         self.age = 18
     8 #获取类中的成员
     9 print(SpecialMembers.__dict__)
    10 #创建一个对象
    11 obj = SpecialMembers()
    12 #获取对象中的成员
    13 print(obj.__dict__)#以字典的形式输出
    

    4.类的独特成员之iter

     1 class SpecialMembers:
     2     def __iter__(self):
     3         yield 1
     4         yield 2
     5         yield 3
     6 #创建一个对象
     7 obj = SpecialMembers()
     8 #如果执行for循环对象时,会自动执行对象的__iter__方法,此时的__iter__就是一个生成器
     9 for i in obj:
    10     print(i)
    

    5.类的奇特成员之add

     1 class SpecialMembers:
     2     def __init__(self,a1,a2):
     3         self.a1 = a1
     4         self.a2 = a2
     5     def __add__(self,other):
     6         return self.a1 + other.a2
     7 
     8 obj1 = SpecialMembers(1,2)
     9 obj2 = SpecialMembers(3,4)
    10 print(obj1 + obj2)#5
    

    6.真的的构造方法

     1 class Foo:
     2     def __init__(self,a1,a2):#初始化方法
     3         """
     4         为空对象进行数据初始化
     5         """
     6         self.a1 = a1
     7         self.s2 = a2
     8 
     9     def __new__(cls,*args,**kwargs):
    10         """
    11         创建一个空对象
    12         """
    13         return object.__new__(cls)#python内部创建一个当前类的对象
    14 
    15 obj = Foo(1,2)
    16 print(obj)
    

     

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:特殊成员,Python面向对象特殊成员

    关键词:

上一篇:str字符串 expandtabs( ) 方法

下一篇:没有了