python基础篇2-面向对象

  OOP的理解应该都是通用的,对事物特征和行为的抽象,特征即是属性,行为即是方法。不过能够把具体问题合理的抽象和整合,真的还很体现理解的。

  python类的定义:

  class ClassName():

    def method1():

      clause....;

  类名称一般采用大驼峰命名法。

说点我觉得不一样的地方吧

  python支持在外部添加和获取属性,不过该属性只被当前对象持有。

>>> class Student():
...     def print_info():
...         print(f"my name is {self.name}")
...
>>> stu1 = Student()
>>> stu2 = Student()
>>> stu1.name = 'zhangsan'
>>> stu1.print_info()
Traceback (most recent call last):
  File "<python-input-4>", line 1, in <module>
    stu1.print_info()
    ~~~~~~~~~~~~~~~^^
TypeError: Student.print_info() takes 0 positional arguments but 1 was given
>>> print(stu1.name)
zhangsan
>>> print(stu2.name)
Traceback (most recent call last):
  File "<python-input-6>", line 1, in <module>
    print(stu2.name)
          ^^^^^^^^^
AttributeError: 'Student' object has no attribute 'name'
>>>

  不过一般还是在内部添加和获取属性,通过self.pro = 初始化,这样在声明对象的时候即可初始化。

  python类中具有特殊功能的方法:__XX__()的声明格式(又称魔法方法)

  常见:

  __init__(): 相当于构造函数,可以含参构造

  __str__(): 相当于.ToString() 方法,重写后不再打印对象的内存地址,而是自定义的信息

  __del__():相当于析构函数,和__init__()一样默认有并调用,不过重写后可以在释放对象的时候处理一些事情

posted @ 2025-08-25 17:35  Wind_Swing_Dunn  阅读(5)  评论(0)    收藏  举报