对象的绑定方法

目录

  • 对象的绑定方法

    • 一、对象的绑定方法
    • 二、类使用对象的绑定对象
  • 三、对象使用对象的绑定方法

对象的绑定方法

一、对象的绑定方法

class Student:
    school = 'hnnu'

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.sex = gender

    def choose_course(self):
        print(f'{self.name} choosing course')

    def func(self):
        print('from func')
  • 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的
  • 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性

二、类使用对象的绑定对象

stu1 = Student('randy', 18, 'male')
stu2 = Student('sun', 17, 'male')
stu3 = Student('laowang', 19, 'female')

print(stu1.name)
print(stu1.school)
randy
hnnu
  • 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的参数规则,该传几个值就传几个
print(Student.choose_course)
<function Student.choose_course at 0x10558e840>
try:
    Student.choose_course(123)
except Exception as e:
    print(e)
'int' object has no attribute 'name'

三、对象使用对象的绑定方法

  • 类中定义的函数是共享给所有对象的,对象也可以使用,而且是绑定给对象用的,
  • 绑定的效果:绑定给谁,就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入
print(id(stu1.choose_course))
print(id(stu2.choose_course))
print(id(stu3.choose_course))
print(id(Student.choose_course))
4379911304
4379911304
4379911304
4384680000
print(id(stu1.school))
print(id(stu2.school))
print(id(stu3.school))
4380883688
4380883688
4380883688
print(id(stu1.name), id(stu2.name), id(stu3.name))
4384509600 4384506072 4384507864
stu1.choose_course()
nick choosing course
stu2.choose_course()
sean choosing course
stu3.choose_course()
tank choosing course
  • 补充:类中定义的函数,类确实可以使用,但其实类定义的函数大多情况下都是绑定给对象用的,所以在类中定义的函数都应该自带一个参数self
stu1.func()
from func
stu2.func()
from func

原文地址:https://www.cnblogs.com/randysun/p/12248008.html

时间: 2024-11-06 03:43:57

对象的绑定方法的相关文章

类与对象的绑定方法

目录 类与对象的绑定方法 类的绑定对象 对象的绑定方法 类与对象的绑定方法 class OldboyStudent: school = 'oldboy' def __init__(self, name, age, gender): self.name = name self.age = age self.sex = gender def choose_course(self): print(f'{self.name} choosing course') def func(self): print

080 对象的绑定方法

一.对象的绑定方法 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性 class Student1: school = 'xiwangzhongxue' def __init__(self,name,age): self.name = name self.age = age def choice(self): print(f'{self.name}选课...') def study(self): print('学习....'

093 类和对象的绑定方法和非绑定方法

目录 一.绑定方法 1.1 对象的绑定方法 1.2 类的绑定方法 1.3 类的绑定方法用在什么地方? 二.非绑定方法(静态方法) 2.1 非绑定方法用在什么地方? 类中定义的方法大致可以分为两类:绑定方法和非绑定方法.其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法. 一.绑定方法 对象的绑定方法/类的绑定方法 1.1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法,这类方法专门为对象定制. 通常说的绑定方法都是对象的绑定方法,因为类创建时默认就是对象的绑定方法.

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

一.类中定义的函数分成两大类 一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入) 2. 绑定到对象的方法:没有被任何装饰器装饰的方法. 为对象量身定制 对象.boud_method(),自动将对象当作第一个参数传入 (属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说)

PYTHON-面向对象 类 绑定方法

1. 面向对象编程 核心是对象二字, 对象是特征与技能的结合体, 基于该思想编写程序就好比在 创造一个世界, 世界是由一个个具体存在的对象组成的, 你就是这个世界的上帝 这一种上帝式的思维方式 优点: 扩展性强 缺点: 编程的复杂度要高于面向过程 2. 类: 对象是特征与技能的结合体,类则是一系列对象相同的特征与技能的结合体 对象本质是一个名称空间/容器:存放的是对象特有的特征 类本质也是一个名称空间/容器:存放的是对象们共有的特征与技能 3. 在现实世界中,先有一个个具体存在的对象,然后随着人

python_day7 绑定方法与非绑定方法

在类中定义函数如果 不加装饰器 则默认 为对象作为绑定方法 如果增加 classmethod 是 以 类 作为绑定方法 增加 classmethod 是 非绑定方法,就是不将函数 绑定 ##################### class Foo: def func(self): print(self) @classmethod def func2(cls): print(cls) @staticmethod def sta(): print('非绑定参数') JG=Foo()JG.func(

全面解析python类的绑定方法与非绑定方法

类中的方法有两类: 绑定方法 非绑定方法 一.绑定方法 1.对象的绑定方法 首先我们明确一个知识点,凡是类中的方法或函数,默认情况下都是绑定给对象使用的.下面,我们通过实例,来慢慢解析绑定方法的应用. class People: def __init__(self,name,age): self.name = name self.age = age def talk(self): pass p = People('xiaohua',18) print(p.talk) 输出结果: <bound m

笔记-[6]-js中事件绑定方法的总结

js中的两种对象事件绑定方法: 1:常用的如:div.onclick=function(){...}; 2:通过系统方法绑定事件: 非IE:addEventListener('事件名[不加on]',function(){},false[或者true]) IE:attachEvent('事件名[加on]',function(){}); 通过系统方法绑定事件可以让对象可以绑定相同的事件并且执行不同的操作,如果使用第一种方法绑定多个相同的事件,最后一个事件会覆盖前面所有的事件. 在addEventLi

Python面向对象编程 绑定方法

类的函数属性绑定给不同对象,是不同的绑定方法.对象调用绑定方法时会把对象本身当做self参数传入 示例代码 class People: country = 'China' ? def __init__(self, name, sex, age): self.Name = name self.Sex = sex self.Age = age ? def test(self): print(self) ? ? conan = People('Conan', 'male', 8) wukong = P