# 面向对象基础

# 建立一个类

# 类的基本语法

class TestClass:
    def __init__(self):
        print("这是init方法")

这是一个最基本的类,有__init__方法

类名必须使用大驼峰命名法,即所有的单词首字母大写

类的基本语法:

class 类名:
    函数

# 对象函数

在python中,像__init__这样前后都有双下划线的叫魔法方法
例如__init__就是在方法实例化时调用
一般来说,实例化方法用于建立变量,举个栗子:

class TestClass:
    def __init__(self, value):
        self.value = value
        print("实例化完成")

这样实例就有了value变量,类内可以通过self.value调用,类外使用实例名.value访问
定义一个非魔法对象方法:

def 函数名(self,参数):
    语句

self就是调用对象,可以使用self调用类内方法或变量

类内直接写代码会直接执行,必须使用函数括起来

# 实例化

写个狗的类只会吃和睡就离谱

class Dog:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(f"{self.name}正在吃")

    def sleep(self):
        print(f"{self.name}正在睡")

    def __str__(self):
        return f"{self.name}是一只狗"

然后实例化Dog类

doge = Dog("doge")
doge.eat()
doge.sleep()
print(doge)
# 输出:doge正在吃
# doge正在睡
# doge是一只狗

实例化语法变量 = 类名(参数)
doge.eat()就是调用了对象方法eat()
方法内使用了self.name作为名字
print(doge)是调用了对象的__str__方法

__str__必须返回一个字符串

# 私有变量与方法

python的类(对象)变量分为以下三大类:

  • private 使用__开头且不使用__结尾的方法或变量,只能在类内部调用
  • protected 使用_开头的方法或变量,可以在同文件内访问,但是无法import导入
  • public 正常的方法名,可以用import导入

python的私有是伪私有,假设类A下有私有变量__s,实际上python只是把它的名称
变成了_A__s,使用类(实例)._A__s即可访问

面向对象大部分会在第9篇讲,这一段就是基础中的基础