python-属性的查找与绑定方法

类的属性:

类中有两种属性:

  数据属性:类的数据属性是所有对象共享的。

      eg:   在类中定义了一个  school = ‘luffycity‘  #这个称类的数据属性。

        当这个类生成了多个对象时,这些对象都享有这个数据属性。

   函数属性:类的函数属性是绑定给对象使用的。

     eg: 类中定义了一个 函数:

          def eat():

            print (‘is eatting‘)

        当生成一个stu1对象并使用这个eat方法是时,执行结果只影响stu1

   注意:当定义了一个对象时它的查找顺序如下:

        先由对象的名称空间找属性,当找不到的时候,

        就会从类的名称空间找,再找不到,在父类名称空间找,还是找不到,就会报错。

绑定方法:

在类中所定义的函数——是类的函数属性,类自己可以使用,但必须遵守函数的参数规则,有几个参数需要传几个参数。

class OldboyStudent:
    school=‘oldboy‘
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    def learn(self):
        print(‘%s is learning‘ %self.name) #新增self.name

    def eat(self):
        print(‘%s is eating‘ %self.name)

    def sleep(self):
        print(‘%s is sleeping‘ %self.name)

s1=OldboyStudent(‘李坦克‘,‘男‘,18)

print(OldboyStudent.learn(s1)) # 类使用类定义的函数learn ,需要传参。
                               # 现在把对象s1传进去的意思是
                               # 可

     注意:1、类中定义的函数主要给对象使用的,且是绑定到对象的。

        2、类定义的函数功能一样,但类绑定到不同的对象,就是不同的绑定方法。

        3、绑定对象的方法的这种自动传值的特征,决定了类中定义的函数都要写一个self参数。

类即类型:

python3 中一切皆对象,且python3 中类与类型是同一个概念,类型就是类。

原文地址:https://www.cnblogs.com/AYxing/p/8993187.html

时间: 2024-11-05 20:36:59

python-属性的查找与绑定方法的相关文章

003---属性查找和绑定方法

属性查找与绑定方法 属性查找 类有两种属性:数据属性和函数属性 class LuffyStudent: school = 'Luffy' def __init__(self, name, sex, age): self.name = name self.sex = sex self.age = age def learn(self, class_name): print('%s 正在学习 %s' % (self.name, class_name)) def eat(self): print('吃

python:属性查找与绑定方法

属性查找 类有两种属性:数据属性和函数属性 1.类的数据属性是所有对象共享的 # 类的数据属性是所有对象共享的,id是一样的 print(id(OldboyStudent.school)) # 4830576 print(id(s1.school)) # 4830576 print(id(s2.school)) # 4830576 print(id(s3.school)) # 4830576 2. 类的函数属性是绑定给对象用的,称为绑定到对象的方法 # 类的函数属性是绑定给对象使用的,obj.m

属性查找与绑定方法

属性查找 类有两种属性:数据属性和函数属性 1.类的数据属性是所有对象共享的 class LuffyStudent: school='luffycity' def learn(self): print('is learning') def eat(self): print('is sleeping') #后产生对象 stu1=LuffyStudent() stu2=LuffyStudent() stu3=LuffyStudent() print(id(stu1.school)) print(id

类属性查找与绑定方法

class luffystudent: def __init__(self,name,sex,age): self.name=name self.sex=sex self.age=age school='luffycity' def learn(self,x): print('%s is learning %s' %(self.name,x)) def eat(self): print('is eating') def sleep(self): print('is sleeping') #后产生

Python基础day-21[面向对象:多态,绑定方法]

多态: 指的是一种事物的多种形态. 例如: 数据类型有多种形态:字符串,列表,元组 动物的多种形态:狗,猫,老虎,狮子... 一个抽象类有多个子类,因而多态的概念依赖于继承. import abc class A(metaclass=abc.ABCMeta): @abc.abstractmethod def talk(self): #子类必须有 talk方法 pass class B(A): def talk(self): print('say Hi') class C(A): def talk

python基础18 ---多态与绑定方法

一.抽象类 1.抽象类的定义:从一堆类中抽象出相同的内容,重新组成一个新的类,这样的类属于抽象类. 2.香蕉类是一类水果,苹果类是一类水果,葡萄类是一类水果,但是他们都属于水果,从他们这些类中可以抽象出相同的部分都是属于水果类,这个水果类就属于抽象类.但是你永远无法吃到一个叫水果的对象,所以抽象类是不能被实例化的,他只能被别的类所继承,并且子类必须实现抽象方法. 3.该抽象类主要和abc模块结合使用.(之前将的读和写) 4.抽象类的本质还是类,指的是一组类的相似处,包括数据属性和函数属性,而接口

python tips:类的绑定方法(bound)和非绑定方法(unbound)

类属性只有类及其实例能够访问,可以理解为一个独立的命名空间. Python中类属性的引用方式有两种: 1. 通过类的实例进行属性引用,称为绑定方法(bound method),可以理解为方法与实例绑定在一起. 2. 通过类进行属性引用,称为非绑定方法(unbound method),方法没有与实例绑定. 在绑定方法中,为了与实例绑定,Python自动将实例作为方法的第一个参数,而非绑定方法则表现的像普通函数,和普通函数的区别在于它只能通过类来访问. 两种引用方式: 1 class A: 2 de

属性查找;绑定到对象的方法的特殊之处;对象之间的交互

四 属性查找 类有两种属性:数据属性和函数属性 1. 类的数据属性是所有对象共享的 2. 类的函数属性是绑定给对象用的 #类的数据属性是所有对象共享的,id都一样 print(id(OldboyStudent.school)) print(id(s1.school)) print(id(s2.school)) print(id(s3.school)) ''' 4377347328 4377347328 4377347328 4377347328 ''' #类的函数属性是绑定给对象使用的,obj.

绑定与非绑定方法 继承 继承与抽象 查找属性关系 派生与覆盖 访问父类的内容

类属性与对象属性 类中应该仅存储所有对象共有的内容 如所有人的国籍相同那就放到类中 对象中存储每个对象独有的内容 ? 如每个人的名字都不同 初始化函数class Person: color = 'white' def read(self): print('hamlet') # 创建对象 也称之为实例化 产生的对象也称之为实例a1=Person()print(a1)print(a1.color)print(a1.__dict__) a2 = Person()print(a2)print(a2.re