python类方法问题(Python编程与问题求解)

发布时间:2022-11-13

本文目录一览:

  1. python类中属性方法的事件
  2. python类方法问题
  3. 关于python的实例方法问题?

python类中属性方法的事件

  1. 普通方法:直接用 self 调用的方法。
  2. 私有方法:__函数名,只能在类中被调用的方法。
  3. 属性方法:@property,将方法伪装成为属性,让代码看起来更合理。
  4. 特殊方法(双下划线方法):以 __init__ 为例,是用来封装实例化对象的属性,只要实例化对象就一定会执行 __init__ 方法,如果对象子类中没有则会寻找父类(超类),如果父类(超类)也没有,则直接继承 object(Python 3.x)类,执行类中的 __init__ 方法。
  5. 类方法:通过类名的调用去操作公共模板中的属性和方法。
  6. 静态方法:不用传入类空间、对象的方法,作用是保证代码的一致性、规范性,可以完全独立类外的一个方法,但是为了代码的一致性统一的放到某个模块(py文件)中。

python类方法问题

@classmethod
def new_square(cls, side_length):
    return cls(side_length, side_length)
  • @classmethod 表示函数 new_squareRectangle 类里面的一个类方法。
  • cls 表示调用当前的类名。
  • side_length 是函数的一个参数。
  • return cls(side_length, side_length) 表示返回调用 Rectangle 类的构造函数 __init__(self, width, height) 初始化后的类。 因此:
square = Rectangle.new_square(5)

表示调用 Rectangle 类的类方法 new_square,初始化 Rectangle 类并返回。

print(square.calculate_area())

表示调用 Rectangle 类的计算面积函数,并打印输出。 所以 5 传给 side_length 变量,又调用 __init__ 函数为 self.widthself.height 赋值为 5, 调用 print(square.calculate_area()) 打印 self.width * self.height = 5 * 5 = 25

关于python的实例方法问题?

题主你好, Python 中创建新实例的时候,如果相应的类中定义了 __init__() 方法的话,会自动调用这个方法。你可能认为名称 "init" 和 "init" 差不多,但计算机其实是个很笨的东西,它会完全按照设计去执行。也就是说,在设计的时候就已经定死了,默认情况下,创建新实例的时候,会自动调用类中定义的 __init__() 方法,只要你方法名和 __init__ 有一点不一样也不行。 下图是我在官网上找的关于 __init__() 调用的简单说明: 高亮部分说的大概意思就是上面讲的,如果相应类中定义了 __init__() 方法,则在创建该类实例的时候会自动调用里面定义的 __init__() 方法。

希望可以帮到题主,欢迎追问。