1. 类
类是对一群具有相同特征
或行为
的事物的一个统称,是抽象的,不能直接使用。就像一个模板
,是负责创建对象的。
特征 被称为 属性,也可以简单的理解为在类中定义的
变量
就是属性;
行为 被称为 方法,也可以简单的理解为在类中定义的函数
就是方法
2. 对象
对象是由类创建出来的一个具体存在
,可以直接使用
由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法
<先有类,再有对象>
3. 类和对象的关系
- 类是模板,对象是根据类这个模板创建出来的。
- 类只有一个,而对象可以有很多个
- 不同的对象之间的属性可能会各不相同
- 类中定义了说明属性和方法,对象中就有什么属性和方法
4. 实例
4.1 创建类
这里我创建了一个Student类,除了实例方法其中还包含了类方法和静态方法
class Student:
# 直接写在类里面的变量称为类属性
native_place = "扬州"
# 类里面的函数称作方法
def __init__(self, name, age):
self.name = name
self.age = age
# 实例方法
def info(self):
print("this student name is {0},age is {1}".format(self.name, self.age))
# 类方法
@classmethod
def cm(cls):
print("类方法,使用class method 修饰")
# 静态方法
@staticmethod
def method():
print("静态方法使用 staticmethod 修饰")
4.2 对象创建及属性调用
接下来创建对象,打印他的属性
# 创建对象
std = Student("舒克", 22)
print(std.name)
print(std.age)
结果:
舒克
22
4.3 调用实例方法
要调用类的实例方法可以通过两种方式:
# 调用info方法一
std.info()
# 调用info方法二 类名.方法名(类对象)------>实际上就是方法定义处的self
Student.info(std)
结果:
this student name is 舒克,age is 22
this student name is 舒克,age is 22
4.4 调用类方法
# 调用类方法
Student.cm()
输出:
类方法,使用class method 修饰
4.5 调用静态方法
# 调用静态方法
Student.method()
输出:
静态方法使用 staticmethod 修饰
4.6 添加动态属性
print("-------为std1动态添加属性--------")
std1 = Student("贝塔", 24)
std1.gender = "男"
print(std1.gender)
结果:
男
4.7 动态绑定方法
def show_out():
print("定义在类之外的函数")
print("-------为std动态绑定方法--------")
std.show = show_out
std.show()
结果:
-------为std动态绑定方法--------
定义在类之外的函数