1、两大编程思想
面向过程与面向对象
两者相辅相成,并不是对立的,解决复杂问题,通过面向对象的方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理
区别:
- 面向过程:事物比较简单,可以用线性的思维去解决
- 面向对象:事物比较复杂,使用简单的线性思维无法解决
共同点: - 面向过程和面向对象都是解决实际问题的一种思维方式
2、类创建
- 类:类是多个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质
数据类型:不同的数据类型属于不同的类,我们可以使用内置函数type()
查看数据类型 - 对象:是类下不同的例子例如int类下的1,2,3,这些称为类或实例
类的创建
语法
# 类名要求首字母大写 class 类名: pass
3、类对象、类属性、类方法、静态方法
类的组成:
- 类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
- 实例方法
- 静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
- 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
类方法和静态方法用类名打点调用,实例方法可以类名/对象名打点调用class Student: native = ‘西安’ # 直接写在类里的变量,称为类属性 def __init__(self,name,age): #self.name 称为实体属性,进行了一个赋值操作,将局部变量name赋值给实体属性 self.name=name self.age=age #实例方法 def eat(self): print(‘学生正在吃饭’) #静态方法 @staticmethod def method(): print(‘用staticmethod修饰所以是静态方法’) def classmethod(cls): print(‘用classmethod修饰,所以是类方法’)
注:类外叫函数,类内叫方法
4、对象的创建
- 对象的创建又称为类的实例化
- 语法:
实例名 = 类名()
#例子 #创建Student类的实例对象 stu = Student(‘Roc’,20) print(stu.name) #实例属性 print(stu.age) #实例属性 stu.info() #实例方法
意义:有了实例,就可以调用类的内容
5、动态绑定属性和方法
对象名.属性名 = 值
对象名.方法名 = 方法名
#示例
class Student:
def __init__(self,name,age)
self.name = name
self.age = age
def eat(self):
print(‘吃掉吃掉!’)
stu1 = Student(‘张三’,20)
stu2 = Student(‘李四’,21)
#动态添加属性
stu1.gender = ‘男’
print(stu1.gender) #男 ,stu2不能调用gender因为没有动态天加该属性
def sleep(): #类外叫函数类内叫方法
print(‘睡睡睡’)
#动态添加方法
stu1.sleep = sleep
#调用
stu1.sleep() #stu2无法调用