Imooc - Python3 进阶教程: Python面向对象编程

本章讲解Python面向对象编程的概念,如何创建类和实例,如何定义类的属性和方法。
更新于: 2022-01-13 01:33:08

定义类及初始化成员

class Person(object):
    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age

类属性的定义(location)

相当于 Animal.location 这种方式调用,感觉叫类成员比较合理

class Animal(object):
    localtion = 'Asia'
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def start(self):
        print('Animal start')
        print(self.localtion)

print(Animal.localtion)		# Asia

# 这个操作好,js 没这么玩的
ani = Animal('dog', 2)
ani.start()					# Animia start \n Asia

类私有属性

# 类私有属性
class Animal(object):
    __localtion = 'Asia'

print(Animal.__localtion)
Traceback (most recent call last):
  File "/Users/alo7.aric/Downloads/app.py", line 5, in <module>
    print(Animal.__localtion)
AttributeError: type object 'Animal' has no attribute '__localtion'

定义类方法

class Animal(object):
    __localtion = 'Asia'
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def set_localtion(cls, localtion):
        cls.__localtion = localtion

    @classmethod
    def get_localtion(cls):
        return cls.__localtion

print(Animal.get_localtion()) # ==> Asia
Animal.set_localtion('Afica')
print(Animal.get_localtion()) # ==> Africa

参考