目录
一:面向对象基础概况
1.类与对象
class 类名:
pass
对象 = 类名()
2.对象的属性查找
对象,属性--》先从对象自己的名称空间中找--》类的名称空间找--》报错
类中定义属性,对象只能使用,不能修改
如果对象修改,改的是自己名称空间的属性
3.对象的绑定方法
定义在类内部的函数,就是对象绑定的方法,对象来调用,会自动把对象传入(self)
类 也可以来调用, 类来调用,就是普通的函数,有几个参数就要几个参数
5.什么是函数,什么叫方法?
普通函数:
函数: 普通函数 def 定义的函数,有几个参数就要传几个参数
类中的函数:
方法: 绑定给某个对象的,由对象来调用,特殊之处是会把对象自身传入
class Student:
def choose_course(self):
print(self)
s = Student()
s.choose_course() # choose_course就叫方法
Student.choose_course(1) # 就是普通函数
6. 初始化的方法 _ _ init _ _的使用
初始化方法:
类加括号实例化得到对象时,会触发它的执行
可以在在初始化方法中,给对象赋初值
class Student:
def __init__(self, name, age, school='北大'):
self.name = name
self.age = age
self.school = school
def sleep(self):
print('%s睡着了' % self.name)
s1 = Student('lqz', 19, school='清华')
s2 = Student('egon', 18)
s3 = Student('zhangsan', 22)
s3.sleep() # zhangsan睡着了
s2.sleep() # egon睡着了
初始化:终极版
class Student: 推荐使用大写(驼峰提)
school = 'oldboy' 对象共有的属性, 不希望把这个属性放到每个对象中
def __init__(self, name):
self.name = name
def sleep(self, hour): # self就是s1
print(self.name, '睡了', hour, '小时')
def print_school(self):
print('我的学校是:%s' % self.school)
def test(self): # s1
# 在test中调用对象的睡觉方法
self.sleep(18)
# sleep() # sleep没有定义
初始化
按位置,或者按关键字传参
s1 = Student('lqz')
s1.test()
最后总结 1.属性查找2.绑定方法3.实例化
class Student: 推荐使用大写(驼峰提)
school = 'oldboy' 对象共有的属性, 不希望把这个属性放到每个对象中
def sleep(self, hour): # self就是s1
print(self.name, '谁了', hour, '小时')
def print_school(self):
print('我的学校是:%s' % self.school)
def test(self): s1
在test中调用对象的睡觉方法
self.sleep(18)
sleep() sleep没有定义
1 类与对象
实例化得到对象
student = Student()
# 赋予对象name属性
student.name = 'lqz'
student.school
student.sleep(8)
属性的查找顺序
student.school = '清华'
student.print_school()
3 对象的绑定方法
在对象的绑定方法中, 可以调用对象的另一个绑定方法
需要借助self来调用
s1 = Student()
s1.name = 'lqz'
s1.test() s1调用对象的绑定方法test,会自动把s1传入