实例成员:对象.成员名
实例变量
对象.变量名
实例方法
对象.方法()
实例变量
1. 语法
(1) 定义:对象.变量名
(2) 调用:对象.变量名
2. 说明
(1) 首次通过对象赋值为创建,再次赋值为修改.
w01 = Wife()
w01.name = “丽丽”
w01.name = “莉莉”
(2) 通常在构造函数(init)中创建。
w01 = Wife(“丽丽”,24)
print(w01.name)
(3) 每个对象存储一份,通过对象地址访问。
3. 作用:描述某个对象的数据。
4. dict:对象的属性,用于存储自身实例变量的字典。
实例方法
1. 语法
(1) 定义: def 方法名称(self, 参数列表):
方法体
(2) 调用: 对象地址.实例方法名(参数列表)
不建议通过类名访问实例方法
2. 说明
(1) 至少有一个形参,第一个参数绑定调用这个方法的对象,一般命名为"self"。
(2) 无论创建多少对象,方法只有一份,并且被所有对象共享。
3. 作用:表示对象行为。
"""
实例成员:对象.成员名
实例变量
对象.变量名
实例方法
对象.方法()
"""
class Wife:
def __init__(self, name):
# 局部变量:存储在栈帧中
a = 10
# 实例变量:存储在对象中
self.name = name
def work(self):
# print(a) 不能访问其他方法的局部变量
# 可以访问自身对象的实例变量
print(self.name + "在工作")
w01 = Wife("双儿")
w02 = Wife("建宁")
print(w01.name)
print(w02.name)
# 存储了对象所有的实例变量
print(w01.__dict__) # {'name': '双儿'}
w01.work() # 自动传递对象地址 work(w01)
w02.work() # 自动传递对象地址 work(w01)
Wife.work(w01) # 手动传递对象地址 类名.方法名(对象地址)
"""
class Wife:
pass
w01 = Wife()
w01.name = "建宁" # 创建实例变量
w01.name = "双儿" # 修改实例变量
print(w01.name)
dict01 = {}
dict01["a"] = "A"
dict01["a"] = "B"
print(dict01["a"]) # B
"""
# class Wife:
# def set_name(self,name):
# # 建议创建实例变量在__init__中
# self.name = name
#
# w01 = Wife()
# w01.set_name("双儿")
# print(w01.name) #
类成员
类变量
创建:在类中
使用:用类名 类名.类变量
类方法
类变量
1. 语法
(1) 定义:在类中,方法外定义变量。
class 类名:
变量名 = 表达式
(2) 调用:类名.变量名
不建议通过对象访问类变量
2. 说明
(1) 存储在类中。
(2) 只有一份,被所有对象共享。
3. 作用:描述所有对象的共有数据。
类方法
1. 语法
(1) 定义:
@classmethod
def 方法名称(cls,参数列表):
方法体
(2) 调用:类名.方法名(参数列表)
不建议通过对象访问类方法
2. 说明
(1) 至少有一个形参,第一个形参用于绑定类,一般命名为’cls’
(2) 使用@classmethod修饰的目的是调用类方法时可以隐式传递类。
(3) 类方法中不能访问实例成员,实例方法中可以访问类成员。
3. 作用:操作类变量
"""
类成员
类变量
创建:在类中
使用:用类名 类名.类变量
类方法
"""
class ICBC:
# 类变量:总行的钱
total_money = 1000000
@classmethod
def print_total_money(cls):
# print("总行的钱是", ICBC.total_money)
print("总行的钱是", cls.total_money)
def __init__(self, name="", money=0):
self.name = name
# 实例变量:支行的钱
self.money = money
# 总行的钱减少
ICBC.total_money -= money
tt = ICBC("天坛支行", 100000)
trt = ICBC("陶然亭支行", 200000)
# print("总行的钱:", ICBC.total_money)
ICBC.print_total_money()# print_total_money(ICBC)
总结Python所有变量
全局变量
1. 定义在函数外部,模块内部的变量。
2. 在整个模块(py文件)范围内访问(但函数内不能将其直接赋值)。
局部变量
1. 定义在函数内部的变量(形参也是局部变量)
2. 只能在函数内部使用
3. 调用函数时才被创建,函数结束后自动销毁
类变量
1. 语法
(1) 定义:在类中,方法外定义变量。
class 类名:
变量名 = 表达式
(2) 调用:类名.变量名
不建议通过对象访问类变量
2. 说明
(1) 存储在类中。
(2) 只有一份,被所有对象共享。
3. 作用:描述所有对象的共有数据
"""
总结Python所有变量
"""
# 全局变量:存储文件中
a = 10
def func01():
# 局部变量:存储栈帧中
b = 20
class MyClass:
# 类变量:存储类中 【大家:饮水机】
d = 40
def __init__(self):
# 实例变量:存储对象中
self.c = 30 # 【自己:杯子】
封装行为
数据角度讲
- 定义:
将一些基本数据类型复合成一个自定义类型。
name face_score age height weight --> Wife- 优势:
将数据与对数据的操作相关联。
代码可读性更高(类是对象的模板)。
- 优势:
"""
封装行为
需求:类的定义者保障数据的有效性
年龄: 25 ~ 30
"""
class W