【Python】类、对象、self

个人理解:类是一个模板,对象是类的实例化
参考:https://www.runoob.com/python/python-object.html
【0】类的内置属性

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod【我理解为import xxx】中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

【1】类的创建

class ClassName:
    '类的帮助信息'
    class_suite

可以用__doc__查看类信息
比如print(ClassName.doc)
输出为类的帮助信息

class Employee:
   '所有员工的基类'
   empCount = 0
 
   def __init__(self, name, salary): # 构造方法/初始化方法:当创建了这个类的实例时就会调用该方法
      self.name = name
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self):
     print "Total Employee %d" % Employee.empCount
 
   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary

【2】对象的创建
object = ClassName()

【3】类的继承

class 子类名(父类名):
  ...

可以继承多个类:

class 子类名(父类名1, 父类名2, ...):
  ...

构造函数:子类不重写 init,实例化子类时,会自动调用父类定义的 init

当子类有了__init__:

子类有__init__也想继承父类的__init__时,可以用super:

【4】下划线与关键字:

__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许**其本身**与**子类**进行访问,不能用于 from module import *

__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个**类本身**进行访问了。

【5】方法重写:子类中重写父类中有的同名方法

posted @ 2021-12-11 17:04  KinoLogic  阅读(46)  评论(0编辑  收藏  举报