Python学习第十天

实例成员:对象.成员名
实例变量
对象.变量名
实例方法
对象.方法()
实例变量
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 # 【自己:杯子】

封装行为
数据角度讲

  1. 定义:
    将一些基本数据类型复合成一个自定义类型。
    name face_score age height weight --> Wife
    1. 优势:
      将数据与对数据的操作相关联。
      代码可读性更高(类是对象的模板)。
"""
    封装行为
    需求:类的定义者保障数据的有效性
        年龄:  25 ~ 30
"""

class W
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值