面向对象之绑定与非绑定方法

绑定方法:(绑定给谁就由谁来调用,谁来调用就会将谁当做第一个参数传入)

  1. 绑定对象的方法

    类中定义的函数,函数体不加classmethod装饰器装饰的,都是默认绑定给对象的对象方法

    语法:

      def 方法名(self):

        pass

  1. 绑定类的方法

    类中函数在定义阶段,函数体上方加装饰器classmethod的,都是绑定给类的方法

    语法:

      @classmethod

      def 方法名(cls):

        pass

非绑定方法:

    @staticmethod装饰装饰的方法

     非绑定方法是 即不与类绑定,也不与对象绑定的方法,意味着对象与类都可以调用,无论谁来调用都是一个普通函数,没有自动传值效果。

应用:

import settings

class MySql:
    def __init__(self, ip, port):
        self.id = self.create_id()
        self.ip = ip
        self.port = port

    def tell_info(self):
        print('<id:%s ip:%s port:%s>' % (self.id, self.ip, self.port))

    @classmethod
    def from_conf(cls):
        return cls(settings.IP, settings.PORT)

    @staticmethod
    def create_id():
        import uuid
        return uuid.uuid4()



# obj1=MySql('1.1.1.1',3306)
# obj1.tell_info()
obj2 = MySql.from_conf()
obj2.tell_info()

 

产生对象的名称空间:

class Student:
    def __init__(self, stu_name, sex):
        self.name = stu_name
        self.sex = sex  # 通常建议参数名与新增的属性名同名

stu = Student('Bob', 'male')  # 实例化对象
print(stu.name, stu.sex)

'''
# __init__方法会在实例化对象时被调用
# 1.会为实例化的对象形成空的名称空间
# 2.就是一个方法,可以被传参,在 类名(实参) 这种方式下调用并传参 __init__(self, 形参)
# 3.第一个self就是要产生的当前对象
# 重点:在方法内部,形参拿到了实参值,利用self.属性名 = 形参 = 实参值,对对象的名称空间添加属性

 

转载于:https://www.cnblogs.com/qianzhengkai/p/10750885.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值