Imooc - Python3 进阶教程: Python面向对象编程
本章讲解Python面向对象编程的概念,如何创建类和实例,如何定义类的属性和方法。
定义类及初始化成员
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