26 绑定方法与非绑定方法

Posted ouyang99-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了26 绑定方法与非绑定方法相关的知识,希望对你有一定的参考价值。

一: 绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入
 1. 绑定给对象的方法: 类中定义的函数默认就是绑定给对象的
 2. 绑定给类的方法: 为类中定义的函数加上一个装饰器classmethod 

 

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

 

class Foo:
   def f1(self):
     print(self)

   @classmethod
   def f2(cls):
     print(cls)

   @staticmethod
   def f3(x,y):
     print(f3,x+y)


 obj=Foo()
 print(Foo.f2)
 Foo.f2()
 print(obj.f2)
 obj.f2()

 print(Foo.f3)
 print(obj.f3)

 Foo.f3(1,2)
 obj.f3(3,4)
# 应用
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()

 

以上是关于26 绑定方法与非绑定方法的主要内容,如果未能解决你的问题,请参考以下文章

Mixins多态绑定方法与非绑定方法

2020Python修炼记面向对象编程——绑定方法与非绑定方法

09-05 绑定方法与非绑定方法

绑定方法与非绑定方法

绑定与非绑定方法及反射,isinstance和issubclass内置函数

29-绑定方法与非绑定方法