python 面向对象基础梳理二 之类属性与绑定方法
上一节介绍了,什么是面向对象,以及面向对象的基本使用 ,这一小节主要介绍
1、类的属性
2、绑定方法
下面是上节演示的代码
class People: # 定义类的名称
country = 'china' # 类的属性
def __init__(self, name, age): # 类的构造方法,这里的self 可以理解为实例的本身
self.name = name
self.age = age
def eat(self): # 类的方法
print('%s is eating' % (self.name))
def learn(self): # 类的方法
print("%s is learning ,his age is %s" % (self.name, self.age))
p1 = People('bob', 19) # 类的实例化,实例化一个p1 的人类
print(p1.country) # 打印 p1 的country 属性
p1.eat()# p1 的eat 方法
p1.learn() #p1 的learn 方法
一、类有两种属性,包括数据属性和函数属性
1、类的数据属性,类的所有数据属性是对象共享的,内存地址都一样
# 输入 class People: # 定义类的名称 country = 'china' # 类的属性 def __init__(self, name, age): # 类的构造方法,这里的self 可以理解为实例的本身 self.name = name self.age = age def eat(self): # 类的方法 print('%s is eating' % (self.name)) def learn(self): # 类的方法 print("%s is learning ,his age is %s" % (self.name, self.age)) p1 = People('bob', 19) # 类的实例化,实例化一个p1 的人类 p2 = People('jim', 18) # 类的实例化,实例化一个p2 的人类 p3 = People('kk', 29) # 类的实例化,实例化一个p3的人类 # 输出 49877888 49877888 49877888
2、类的函数据是绑定给对象的,称为绑定到对象的方法
类的函数属性属性是绑定给对象使用的,obj.method ,内存地址都不一样,如下所示
# 输入 class People: # 定义类的名称 country = 'china' # 类的属性 def __init__(self, name, age): # 类的构造方法,这里的self 可以理解为实例的本身 self.name = name self.age = age def eat(self): # 类的方法 print('%s is eating' % (self.name)) def learn(self): # 类的方法 print("%s is learning ,his age is %s" % (self.name, self.age)) p1 = People('bob', 19) # 类的实例化,实例化一个p1 的人类 p2 = People('jim', 18) # 类的实例化,实例化一个p2 的人类 p3 = People('kk', 29) # 类的实例化,实例化一个p3的人类 print(People.eat) print(p1.eat) print(p2.eat) print(p3.eat) # 输出 <function People.eat at 0x02DF3540> <bound method People.eat of <__main__.People object at 0x02CE9590>> <bound method People.eat of <__main__.People object at 0x02DF1CD0>> <bound method People.eat of <__main__.People object at 0x02DF1D30>>
二、绑定方法
定义类,并实例化三个对象
类的方法
# 输入 class People: # 定义类的名称 country = 'china' # 类的属性 def __init__(self, name, age): # 类的构造方法,这里的self 可以理解为实例的本身 self.name = name self.age = age def eat(self): # 类的方法 print('%s is eating' % (self.name)) def learn(self): # 类的方法 print("%s is learning ,his age is %s" % (self.name, self.age)) p1 = People('bob', 19) # 类的实例化,实例化一个p1 的人类 p2 = People('jim', 18) # 类的实例化,实例化一个p2 的人类 p3 = People('kk', 29) # 类的实例化,实例化一个p3的人类
类中定义的函数(没有被任何装饰器装饰的)是类的函数属性,类可以使用,但必须遵循函数的参数规则,有几个参数需要传几个参数
如下所示
# 输入 People.eat(p1) People.eat(p2) People.eat(p3) 输出 bob is eating jim is eating kk is eating
类中定义的函数(没有装饰器的),主要是给对象使用的,而且是绑定到对象的,绑定到不同的对象是不同的绑定方法,绑定给谁就由谁来调用,就会将本身当做第一个参数传入。
python中一切皆为对象,且python3中类与类型是一个概念,类型就是类

浙公网安备 33010602011771号