当前位置: 网站首页>小程序开发>微信小程序

漳浦爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

发表日期: 2022-07-04 13:11:10 浏览次数:12

漳浦爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

网站建设.png


所有专有方法中,__init__()要求无返回值,或者返回 None。而其他方法,如__str__()、__add__()等,一般都是要返回值的,如下所示:

>>> class Complex:...     def __init__(self, realpart, imagpart):...         self.r = realpart...         self.i = imagpart...         return 'hello'...>>> x = Complex(3.0, -4.5)Traceback (most recent call last):
  File "<stdin>", line 1, in <module>TypeError: __init__() should return None, not 'str'

而对于 __str__()、__add__() 等。

def __str__(self):
        return 'Vector (%d, %d)' % (self.a, self.b)def __repr__(self):
    return 'Vector (%d, %d)' % (self.a, self.b)def __add__(self,other):
    if other.__class__ is Vector:
        return Vector(self.a + other.a, self.b + other.b)
    elif other.__class__ is int:
        return Vector(self.a+other,self.b)



类的专有方法中,也是存在默认优先级的,多个方法都有返回值,但一般优先取 __str__() 的返回值,如下面例子:


类的专有方法中,也是存在默认优先级的,多个方法都有返回值,但一般优先取 __str__() 的返回值,如下面例子:

class Vector:

    def __init__(self, a, b):

        self.a = a

        self.b = b

    def __repr__(self):

        return 'Vector (%d, %d)' % (self.b, self.a)

    def __str__(self):

        return 'Vector (%d, %d)' % (self.a, self.b)

    def __add__(self,other):

        return Vector(self.a + other.a, self.b + other.b)


v1 = Vector(2,10)

print (v1)

结果是 Vector(2,10),而不是 Vector(10,2)。这里优先使用 __str__() 的返回值。


v1.__repr__()

结果是:Vector(10,2)


徙徒

   徙徒


  143***2467@qq.com


3年前 (2019-06-20)

笔记中有位同学如下这样写道,但我认为不准确:

最新的 Python3.7 中(2018.07.13),对类的构造函数进行了精简。

3.7 版本:

from dataclasses import dataclass@dataclassclass A:
  x:int
  y:int
  def add(self):
    return self.x + self.y

相当于以前的:

class B:
  def __init__(self,x,y):
    self.x = x    self.y = y  def add(self):
    return self.x + self.y

实际上,对于类 A, 实例化时不需要参数;而对于类 B,实例化时需要输入 (x, y) 参数,这才是两者的核心区别。定义类时,若需要输入参数,则一般必须使用 __init__()方法;若不需要输入参数,是否使用 __init__() 方法都可以。

和版本是否对类的构造函数进行了精简,关系不大。

漳浦爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878