python 学习(二)--关于类

时间:2023-03-09 06:47:10
python 学习(二)--关于类

1、没有权限控制,在类方法或变量前加 "__" 两下划线,则变为“私有”变量(实际通过_<类名>__<变量或方法名> 可以访问)

2、类的若干自动触发的内置方法:

  • __new__(cls[, ...])      //该方法返回一个本类的实例,传入的参数会原封不动传递给 __init__() 方法. 该方法一般在继承一个不可修改的类时使用,例如 str

class CapStr(str):

  def __new__(cls, string):

    string = string.upper()

    return str.__new__(cls, string)

a = CapStr("I love you");

  • __init__(self[, ...])     //该方法在实例创建后最早被调用,用于初始化对象

class Rectangle:

  def __init__(self, x, y):

    self.x = x

    self.y = y

  def getPeri(self):

    return(self.x + self.y)*2

aa=Rectangle(3, 4);

aa.getPeri()

  • __del__(self)   //该方法在类实例被释放,最后垃圾回收的时候才被触发

c1=C()

c2=c1

c3=c2

del c3   //不会被触发

del c2  //不会被触发

del c1  //全部引用消除,触发 __del__

  • __add__(self,other) //两个类相加时触发
  • __sub__(self,other) //两个类相减时触发
  • __mul__(self,other) //乘法触发
  • __truediv__(self,other) //真除法