ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python笔记整理第六十一篇(面向对象和面向过程、类与对象)

2021-12-17 09:59:41  阅读:118  来源: 互联网

标签:静态方法 name python 第六十一 面向对象 Student print 方法 def


面向过程和面向对象的区别:
面向过程事物比较简单,可以用线性的思维去解决,面向对象事物比较复杂,使用简单的线性思维无法解决。

面向过程和面向对象的共同点:
面向过程和面向对象都是解决实际问题的一中思维方式。
二者相辅相成,并不是对立的,解决复杂问题,通过面向对象方式方便与我们从宏观上把握时间之间的复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理。

类:类别、,分门别类,物以类聚,人类,鸟类,动物类,植物类…

类是多个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质。

数据类型:不同数据类型属于不同的类
使用内置函数查看数据类型

对象:如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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有