Skip to content

本文讲述在Python中如何创建类、以及创建后的类如何使用、还有类的构造函数,私有变量、以及Python中的封装等等。

类的定义

python中的类的定义和java类似,同样使用class作为关键字。但是如果类中没有定义变量,外部的实体类是可以直接赋值,比如类中没有定义top变量,创建此类后可以直接为本不存在的top变量赋值。

python
# 创建一个类
class Person(object):
    name = None
    age = None

    # 类中方法的第一个参数self名称一般是固定的,如果改成其他名称也可以使用
    def run(self):
        print(f'{self.name}在奔跑')

    # 这种写法也可以
    def run2(s):
        print(f'{s.name}在奔跑')


xiaoming = Person()
xiaoming.name = '小明'  # 给变量赋值
xiaoming.top = 175     # 如果变量没有定义,也可以直接赋值,python会自动绑定到类的实例对象上

print(xiaoming.name)
print(xiaoming.top)
print(xiaoming.run())

类的构造函数

类的构造函数是创建__init__函数,具体使用方法如下

python
class Person(object):
    name = None
    age = None

    # 类的构造函数
    def __init__(self, name, age=None):
        self.name = name
        self.age = age

    # 类中方法的第一个参数self名称一般是固定的,如果改成其他名称也可以使用
    def run(self):
        print(f'{self.name}在奔跑')


# 1.使用字段名指定变量
ming = Person(name='小明', age=12)
ming.run()

# 2.也可以按顺序传参
wang = Person('小王')
wang.run()

li = Person('小李', 19)
li.run()

私有函数与私有变量

定义变量或函数为私有,只需要在变量或函数名钱加上__符号即可,使用方式如下:

python
class Person(object):
    __name = None
    __age = None

    # 类的构造函数
    def __init__(self, name, age=None):
        self.__name = name
        self.__age = age

    # 私有方法
    def __run(self):
        print(f'{self.__name}在奔跑')

    def show(self):
        self.__run()
        print(f'年龄:{self.__age}')


# 此时只能调用show方法,因为其他的都成私有的了
ming = Person(name='小明', age=12)
ming.show()