类和实例
类是创建实例的模板,而实例是一个一个具体的对象,每个对象有相同的方法,但各自的数据可能不同。有点c语言中结构体的意思。
定义一个实例
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score创建后可以传递参数
>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59数据封装的使用
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def print_score(self):
print('%s: %s' % (self.name, self.score)) def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'实际操作:
lisa = Student('Lisa', 99) 两个不同的实例
bart = Student('Bart', 59)
print(lisa.name, lisa.get_grade())
print(bart.name, bart.get_grade())访问限制
一般的类可以被外部代码更改
>>> bart = Student('Bart Simpson', 59)
>>> bart.score
59
>>> bart.score = 99
>>> bart.score
99为了防止更改,在属性的名称前加两个下划线,也限制了外部代码访问
class Student(object):
def __init__(self, name, score):
self._ _name = name
self._ _score = score
def print_score(self):
print('%s: %s' % (self._ _name, self._ _score))为了使得可以访问,添加get_属性 函数定义操作,以及更改操作
class Student(object):
...
def get_name(self):
return self.__name
def get_score(self):
return self.__score def set_score(self, score):
self.__score = score继承和多态
1.继承
父类
class Animal(object):
def run(self):
print('Animal is running...')子类继承,自动拥有了父类的功能,且可以自己添加功能class Dog(Animal):
def run(self):
print('Dog is running...')注意:当类与父类存在相同的功能时,父类继承过来的功能会被子类的所覆盖2.多态
子类可以继承父类的类型,呈现多种类
函数也可以接收类
def run_twice(animal):
animal.run()
animal.run()子类被函数调用时,如果函数run了父类的功能,子类会继承或者覆盖该功能获取对象信息
type()函数:其返回值是class类型,可以是被对象的类型,指向函数或者类
isinstance()函数:判断一个对象是否是某种类型,或者某些类型中的一种
dir() :获得一个对象的所有属性和方法
>>> dir('ABC')
['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill']len(): 获取一个对象的长度
lower(): 返回小写的字符串
实例属性和类属性
由前面可以知道实例属性可以有self.属性进行绑定,类该怎么绑定呢?
class Student(object):
name = 'Student' #直接在class中定义即可该属性可以被访问及更改
Python类与对象详解
本文详细介绍了Python中类和对象的基本概念,包括类的定义、实例的创建与使用、数据封装、访问限制、继承与多态等核心内容,并通过具体示例展示了如何实现这些特性。

被折叠的 条评论
为什么被折叠?



