函数实参、形参、面向对象初级

. 面向对象的思考过程:

​ 客观事物-> 抽象化 ->类 ->具体化 -> 对象

​ 汽车 嘀嘀打车软件

# 老婆 类型
class Wife:
    # 数据
    def __init__(self, name, face_score, money):
        # 姓名
        self.name = name
        # 颜值
        self.face_score = face_score
        # 财产
        self.money = money

    # 行为
    def work(self):
        print(self.name + "工作")

# 老婆 对象
jian_ning = Wife("建宁", 90, 10000000)
# 访问数据
jian_ning.face_score += 2
print(jian_ning.face_score)
# 访问行为
jian_ning.work()

. 实例成员:对象. 成员名

​ 实例变量:

​ 对象. 变量名

​ 实例方法:

​ def 函数名(self, 参数):

​ 对象. 函数名(参数)

class Wife:
    def __init__(self, name, money):
        # 实例变量
        self.name = name
        self.money = money
        self.work()

    # 实例方法
    def work(self):
        pass


jian_ning = Wife("建宁", 100000)
a_ke = Wife("阿珂", 1000)

# 通过对象访问实例变量
print(jian_ning.name)
# 通过对象访问实例方法
jian_ning.work()

# __dict__变量存储的是对象实例变量
print(jian_ning.__dict__)

jian_ning.name = "建宁公主"
# jian_ning.__dict__["name"] = "建宁公主"
print(jian_ning.name)  # ?

# 不建议写法1:创建实例变量,应该在类中.
# class Wife:
#     def __init__(self,name):
#         self.name = name
#
# su_quan = Wife("苏荃")
# print(su_quan.name)
# su_quan.money = 50000 # 创建实例变量
# print(su_quan.money) # 50000

# 不建议写法2:创建实例变量应该在构造函数中(__init__)
# class Wife:
#     def __init__(self,name):
#         self.name = name
#
#     def set_money(self,money):
#         self.money = money
#
# su_quan = Wife("苏荃")
#
# su_quan.set_money(50000)
# print(su_quan.money) # ?

. 函数参数:

​ 实际参数:与形参如何对应

​ 位置实参:按顺序

​ 函数名(数据1,数据2)

​ 序列实参:拆

​ 函数名(*数据1)

​ 关键字实参:按名字

​ 函数名(形参1=数据,形参2=数据2)

​ 实参字典:拆

​ 函数名(**数据1)

​ 形式参数:如何约束实参

​ 默认形参:可选

​ def 函数名(形参1=数据1,形参2=数据2)

​ 位置形参:必填

​ def 函数名(形参1,形参2)

​ 命名关键字形参:必须是关键字形参

​ def 函数名(*, 形参1)

​ def 函数名(*args, 形参1)

​ 不定长参数:数量无线

​ 星号元组形参:位置实参

​ def 函数名(*args)

​ 双星号字典形参:关键字实参

​ def 函数名(**kwargs)

def func01(p1=0, p2=10, p3=50):
    pass


# 位置实参
xx = 1
p2 = 2
p3 = 3
func01(xx, p2, p3)

# 关键字实参
func01(p2=1, p3=2, p1=3)
func01(p2=1)

list01 = [4, 5, 6]
func01(*list01)  # 实际传递的是列表元素4 5 6

dict01 = {"p1": "A", "p3": "B", "p2": "C"}
# key必须是形参名
func01(**dict01)  # 实际传递的是字典键值对


def func02(*, p1):
    pass


func02(p1=10)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值