目录[-]


1、Python中一切皆为对象

面向过程和面向对象是两大编程方式,其中面向对象的编程方式又有着类和对象两个核心概念。类是抽象的存在,不能直接使用,但类中包含属性和方法,对象则是由类创建出来的一个具体实例,在程序中先有类,然后才有对象。
面向对象的三大特性:封装,继承和多态。


2、对象常用的方法

• 内置函数 dir(),则可以查看对象内的所有属性及方法
• __方法名 格式的方法是python的内置方法或属性


3、定义简单的类模版

class Animal:
    # 实例化一个类时,调用 __init__(self)方法
    def __init__(self, name):
        # 为类定义一个属性:name
        self.name = name
        # 为类定义一个私有属性:__age
        self.__age = 10

    # 在对象销毁前,自动调用 __del__(self)方法
    def __del__(self):
        self.name = ""
        self.__age = ""

    # 返回对象的描述信息,表现在print(Animal)时返回的信息
    def __str__(self):
        print("this is a test method!")

    # 定义一个公有的方法
    def bark(self):
        print("bark!!!")

    # 定义一个私有的方法
    def __dogbark(self):
        print("dog!!!")

# 继承
class Dog(Animal):
    # 重写
    def bark(self):
        print("汪汪!!!")

4、类属性的作用

类属性通常用来记录与这个类相关的特征,不会用于记录对象的特征.类属性直接定义在class下方在类内,而非Init方法内。定义在Init中的则为对象属性。在内存中类只有一份,也是一种对象,而对象则有多个。

class Dog:
    count = 0

    def __init__(self):
        Dog.count += 1


xiaohuang = Dog()


xiaohei = Dog()
print(Dog.count)

5、定义类方法

@classmethod
def 类方法名(cls):
	pass

在方法内调用类其他属性:cls.count
在方法内调用类其他方法:cls.—


6、静态方法

如果一个类方法既不访问实力化属性和实例化方法,也不访问类属性和类方法,则可以将这个方法定义为静态方法。静态方法定义无须传递参数。

class Dog:

    @staticmethod
    def run():
        print("running...")

Dog.run()

通过类名.静态方法名字直接调用即可,不需要创建对象。