python-day24-__init__ 绑定方法和反绑定方法

# 今日内容   __init__ 绑定方法与反绑定方法  抽象 继承 派生 属性查找
#  __init__是什么:就是初始化的 , 初始化就是给初始值的意思
#  __init__作用:给对象属性初始值的意思

# 怎么使用 eg
'''
class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def fn(self):
        print('uuu')
# 获取属性时
e= Student('wsx',18)# self是自带的 只需要传self后面的属性名称就好
print(e.name)  # wsx
print(e.age)  # 18
'''

# 注意点
# 执行时机:当实例化产生对象时会自动执行该函数
# 会自动传入需要初始化的对象
# 初始化必须包含至少一个参数 用于表示对象本身
# 该函数不允许有返回值


# 绑定方法
# 是什么:就是把函数和对象绑定在一起  拿到对象就可以拿到数据和处理数据的方法
# 怎么使用:直接调用就可以
# 注意点:在类中定义的方法就是绑定方法

# 当你创建对象时 发生什么
# 1.产生一个空对象 (名称空间)
# 2.自动调用__init__方法 并且把这个对象以及额外的参数传入
# eg
username = "jack"
pwd = "123"
db_name = "qq"

atm_usr = "jerry"
atm_pwd = "123"
#用于登录数据库
def login_data_base(username,pwd,db_name):
    print("%s登录%s数据库 密码为%s" % (username,db_name,pwd))

def login_atm(usr,pwd):
    print("%s 登录了ATM 密码为%s" % (usr,pwd))

login_data_base(username,pwd,db_name)
login_data_base(username,pwd,db_name)
login_data_base(username,pwd,db_name)
login_data_base(username,pwd,db_name)

login_atm(atm_usr,atm_pwd)
login_atm(atm_usr,atm_pwd)
login_atm(atm_usr,atm_pwd)

# 绑定方法与普通函数的区别
# 当使用类调用时,就是一个普通函数 有几个参数就得传几个参数
# 当用对象来调用时,是一个绑定方法了,会自动将对象作为第一个参数传入
#
#
# 一个类中可以有属性和方法
# 方法分为两种
# 1.绑定方法
# ​    1.1对象绑定方法
# ​    在使用对象调用时会自动传入对象本身
#
# ​    1.2类绑定方法
# ​    @classmethod
# ​    在使用对象调用时会自动传入类本身
# ​    在使用类来调用时也会自动传入类本身
#
# ​    单例模式中就会经常使用@classmethod
#
#
#
# 到底绑定给谁?
# 当你的方法执行过程中需要使用到对象中数据时就绑定给对象
# 当你的方法执行过程中需要使用到类中数据时就绑定给类
#
# 2.非绑定方法
# 即不需要对象中的数据 也不需要类中的数据  那就定义为非绑定方法,就是普通函数
# @staticmethod
#
#
#
# oop知识点:
#
# 1.属性应该放在类中还是对象中   :属于类的属性就放在类中 属于对象属性的就放在对象属性中
#
# 2.绑定方法  == 绑定函数
# 对象绑定方法
# ​    对象调用时 自动传入对象本身
# ​    类调用时不会自动传参 有几个就需要传几个
#
# 类绑定方法
# ​    @classmethod
# ​    无论是对象还是类调用 都会自动传入类本身
#
# 非绑定方法(静态方法)
# ​    @staticmethod
#     谁调用都不会自动传参

 

转载于:https://www.cnblogs.com/wakee/p/10878469.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值