python笔记整理第六十一篇(面向对象和面向过程、类与对象)
作者:互联网
面向过程和面向对象的区别:
面向过程事物比较简单,可以用线性的思维去解决,面向对象事物比较复杂,使用简单的线性思维无法解决。
面向过程和面向对象的共同点:
面向过程和面向对象都是解决实际问题的一中思维方式。
二者相辅相成,并不是对立的,解决复杂问题,通过面向对象方式方便与我们从宏观上把握时间之间的复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理。
类:类别、,分门别类,物以类聚,人类,鸟类,动物类,植物类…
类是多个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质。
数据类型:不同数据类型属于不同的类
使用内置函数查看数据类型
对象:如100,99,520都是int类之下包含的相似的不同个例,这个个例专业术语称为实例或对象。
类的创建:
创建类的语法:
class Student:
pass
类的组成:
类属性
实例方法
静态方法
类方法
对象的创建:又称为类的实例化
语法:实例名 = 类名()
代码如下:
class Student: #Student为类名称,有一个或多个单词组成,每个单词的首字母大写,其余小写
native_plac = '湛江' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name = name #self.name称为实体方法,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age = age
#实例方法
def eat(self):
print('在路边炒粉')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def method(cls):
print('我使用了classmethod进行修饰,所以我是类方法')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
print('在街边喝扎啤')
#Python中一切皆对象Student是对象吗?内存有开空间吗?
#print(id(Student))
#print(type(Student))
#print(Student)
#创建Student类对象
stu1 = Student('张三',20)
print(stu1)
print(stu1.name,end='\t')
stu1.eat() #对象名.方法名()
print(stu1.age)
print('________---------------')
Student.eat(stu1) #类名.方法名() 39行代码与35行代码功能相同,都是调用Student中的eat方法
运行方法:
<__main__.Student object at 0x01E4EF90>
张三 在路边炒粉
20
________---------------
在路边炒粉
Process finished with exit code 0
类属性、类方法、静态方法:
类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
代码如下:
class Student: #Student为类名称,有一个或多个单词组成,每个单词的首字母大写,其余小写
native_plac = '湛江' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name = name #self.name称为实体方法,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age = age
#实例方法
def eat(self):
print('在路边炒粉')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def me(cls):
print('我使用了classmethod进行修饰,所以我是类方法')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
print('在街边喝扎啤')
#Python中一切皆对象Student是对象吗?内存有开空间吗?
#print(id(Student))
#print(type(Student))
#print(Student)
#创建Student类对象
stu1 = Student('张三',20)
stu2 = Student('李四',22)
#类属性的使用方法
print(Student.native_plac)
print(stu1.native_plac)
print(stu2.native_plac)
Student.native_plac = '雷州'
print(stu1.native_plac)
print(stu2.native_plac)
print('-------------------类方法的使用----------------')
Student.me()
print('-------------------静态方法的使用----------------')
Student.method()
运行结果:
湛江
湛江
湛江
雷州
雷州
-------------------类方法的使用----------------
我使用了classmethod进行修饰,所以我是类方法
-------------------静态方法的使用----------------
我使用了staticmethod进行修饰,所以我是静态方法
Process finished with exit code 0
标签:静态方法,name,python,第六十一,面向对象,Student,print,方法,def 来源: https://blog.csdn.net/weixin_46550800/article/details/121988351