defaulted函数的提出,4.类的特殊成员之iter

 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__)#以字典的形式输出

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...

C++11 标准的七个新特征:defaulted 和 deleted 函数。对于 defaulted 函数,编写翻译器会为其自动生成私下认可的函数定义体,进而得到越来越高的代码施行功效,也可免除工程师手动定义该函数的职业量。对于 deleted 函数, 编写翻译器会对其禁用,进而制止有些不法的函数调用也许类型转变,从而加强代码的安全性

union共用注脚和集体生龙活虎变量定义:

“联合”是生机勃勃种极度的类,也是风流倜傥种构造类型的数据结构。在三个“联合”内得以定义多样不相同的数据类型,

叁个被认证为该“联合”类型的变量中,允许装入该“联合”所定义的此外生机勃勃种多少,那些数据分享同大器晚成段内部存款和储蓄器,

以到达节省空间的目标(还应该有三个节约空间的品类:位域卡塔尔国。 那是多少个那个例外的地点,也是手拉手的特征。

其他,同struct同样,联合暗中认可访问权限也是国有的,况兼,也具备成员函数。

 

 

 

共用体(参谋“共用体”百科词条)是后生可畏种特殊情势的变量,使用首要字union来定义 共用体(某个人也叫"联合")注脚和共用体变量定义与结构体十三分相同。其方式为:

union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名;

共用体表示几个变量共用叁个内部存款和储蓄器地方,在分化的岁月保存区别的数据类型和不相同长短的变量。
在union中,全体的共用体成员共用三个空中,
再者同期只好存储当中三个分子变量的值。

1、union中得以定义多少个分子, union的轻重由最大的积极分子的高低决定。
2、union成员分享同一块大小的内存, 贰回只好选取当中的一个分子。
3、对某贰个分子赋值,会覆盖任何成员的值(因为他俩分享一块内部存款和储蓄器。

但前提是成员所占字节数相仿,当成员所占字节数不一样一时候只会覆盖相应字节上的值,

比如对char成员赋值就不会把一切int成员覆盖掉,

因为char只占二个字节,而int占多少个字节

4、联合体union的存放顺序是负有成员都从低地址初步存放的。

举个例子下列代码:

//共用体C语言
//杨鑫
#include 
#include 
typedef union
{
 char c;
 int a;
 int b;
}Demo;
int main()
{
 Demo d;
 d.c = 'H';
 d.a = 10;
 d.b = 12;
 printf("最开始时变量所占的字节长度为: %dn", sizeof(d)/4);
 printf("赋值后的三个值分别为:n");
 printf("%ct%dt%dn", d.c, d.a, d.b);
 return 0;

}

如图:

图片 1

 

 

 

union共用注解和集体后生可畏变量定义: 联合是风姿浪漫种奇特的类,也是意气风发种构造类型的数据结构。在二个意气风发并内能够定义多样不同...

2.类的新鲜成员之getitem,setitem,delitem

defaulted函数的建议

C语言中的union用法

5.类的超过常规规成员之add

C++ 的类有四类特别成员函数,它们分别是:私下认可构造函数、析构函数、拷贝构造函数以致拷贝赋值运算符。那些类的独特成员函数担任创立、初叶化、销毁,或许拷贝类的指标。假设工程师未有显式地为四个类定义有些特殊成员函数,而又须求用到该极度成员函数时,则编译器会隐式的为那个类生成叁个默许的奇特成员函数。

 

deleted函数的建议

本文由必威发布于必威-编程,转载请注明出处:defaulted函数的提出,4.类的特殊成员之iter

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。