理解面向对象
为了方便了解,我们拿面向过程做一个对比
例如:肚子饿了,想吃饭,怎么解决问题
面向过程:出门->买菜->卖肉->回家->做饭
面向对象:点外卖
总结:面向对象就是将变成当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。而变成就是设置事物能够做什么事。
属性和方法
我长得很帅->属性
我会洗衣服->方法
类和对象
对象(手机)
打电话--方法
红色--属性
对象有方法或者属性,有其一就行
类和对象的关系:用类去创建一个对象。
理解类和对象
类
类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真是存在的事物
特征即是属性
行为即是方法
对象
对象就是类创建出来的真实存在的事物:例如:手机
注意:开发中,先有类,再有对象
面向对象的创建方法
def 函数名(形参):
class 类名():
创建对象
语法:
#变量名=类名()
print(MyProject.money)这种也可以调用方法
class MyProject(): # 手机的属性(类属性) color = "red" money = 8848 # 类方法 def play_game(self): print("我可以打游戏") if __name__ == '__main__': # 创建对象 func = MyProject() # 调用类方法 func.play_game() # 调用功能 print(f"我的手机是{func.money}多少钱")
类当中,一个方法里面,如果想要使用另一个方法或者类属性,必须要写self
class MyProject(): # 手机的属性(类属性) color = "red" money = 8848 # 类方法 def play_game(self): return "可以打游戏" def main(self): print(f"我这部手机{self.play_game()}") if __name__ == '__main__': func.main()
魔术方法
在python中,__xx__()的函数叫做魔术方法,指的是具有特殊功能的函数
__init__():初始化变量
1.用于传参
2.当对象被创建的时候,他会自动执行
!!!如果自身类方法里面有参数,就不需要再用self.参数名
print(MyProject.name)
可以用类名调用他的类属性
print(MyProject.name) print(MyProject(9999, "华为").money)
当类名加上(),对象就被创建了
__str__():当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了str方法,那么就会打印从这个方法中return的数据
def __str__(self): return "我是这个类的返回值"
类的私有属性
私有属性前面加两个下划线,类对象不能调用他的私有属性,类的私有属性可以在类当中使用,不可以在类外边使用
类的私有方法
在方法名前加两个下划线