资讯专栏INFORMATION COLUMN

python:面向对象基本知识(一)

Guakin_Huang / 288人阅读

摘要:类类是现实世界或思维世界的实体在计算机中的反映它将数据以及这些数据上的操作封装在一起首字母大写单词之间大写连接类包含变量和方法变量类变量实例变量方法实例方法类方法装饰器特殊的类方法构造函数作用让模板创建不同的对象,初始化对象的特性默认被调用

1.类
类是现实世界或思维世界的实体在计算机中的反映
它将数据以及这些数据上的操作封装在一起
首字母大写;单词之间大写连接
2.类包含:变量和方法
变量:
    类变量
    实例变量

方法:
    1.实例方法
    2.类方法 @classmethod(装饰器)
        1.特殊的类方法:构造函数 def __init__(self,x,y):
            作用:让模板创建不同的对象,初始化对象的特性
            默认被调用;亦可被主动调用
        2.普通类方法:前面加 @classmethod装饰器

    3.静态方法 @staticmethod
3.方法访问变量
1.实例方法访问实例变量
    def 方法(self,x):
        self.实例变量=x

2.实例方法访问类变量
    self.__class__.类变量=

3.类方法访问类变量
    def plus_sum(cls):
        cls.类变量
4.成员的可见性
1.原则:只允许内部的方法操作变量,避免直接修改数据变量
2.__ 前面加 双下划线 变量变成私有
    def 方法(self,x):
        self.__变量=x
3.在外部调用 self.__变量=x 时,不是访问而是新建一个
4.可通过__dict__查变量字典
5.类方法 @classmethod装饰器
1. 在函数前加上一个@classmethod 将self改成cls
2. 避免逻辑错乱,不要用对象调用类方法
3. 可以访问类变量 cls.sum(实例方法:self.__class__.变量 )
4. 调用:类.类方法() (不建议用对象调用类方法,不合逻辑)
6.静态方法 @staticmethod,不推荐用此方法
# 在函数前加上一个@staticmethod
# 可以同时被 对象、类 调用
# 可以访问类变量 Student.sum,和变量关联性不大的方法时用
案例
class Student():
    #类变量
    sum1=0

    # 构造函数(类方法)
    def __init__(self,name,age):
        #实例变量
        self.name=name
        self.age=age
        #调用类变量
        self.__class__.sum1+=1
        #构造函数默认被调用
        print("学员人数",self.sum1)

    #通过方法对变量进行赋值(不提倡直接访问类变量的方式来修改值)
    def marking(self,score):
        self.__score=score
        print(self.name+"同学的成绩为:"+str(self.__score))

    #通过类方法调用类变量
    @classmethod
    def stu_sum(cls):
        print("学员人数",cls.sum1)

    #实例方法,调用内部实例方法
    def do_homework(self):
        self.do_eng_homework()

    #实例方法
    def do_eng_homework(self):
        print(self.name,"do eng homework")


student1=Student("小明",21)
student2=Student("小明2",21)
student3=Student("小明3",21)

student1.do_homework()
Student.stu_sum()
student1.marking(90)

# 偷偷调用私有变量的方法
#print(student1.__dict__) #->{"name": "小明", "age": 21, "_Student__score": 90}
#print(student1._Student__score)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43730.html

相关文章

  • 学习Python的建议

    摘要:如果初学者接触的第一门语言是,学习曲线则会平滑得多,掌握一些基本语法和内置的数据结构,已经可以上手写一些小工具或者小型应用。如果你的学习时间充足,我的建议是一定要学数据结构和算法。 前言 Python是最容易入门的编程语言,没有之一。如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易出现内存泄漏、指针等问题。有时候排查这些问题对初学者的打击很大,尤其是没掌握排...

    eechen 评论0 收藏0
  • [零基础学python]关于类的初步认识

    摘要:反对者在某些领域对此予以否认。下面再引用一段来自维基百科中关于的历史。类的更严格的定义是由某种特定的元数据所组成的内聚的包。类还可以有运行时表示形式元对象,它为操作与类相关的元数据提供了运行时支持。 在开始部分,请看官非常非常耐心地阅读下面几个枯燥的术语解释,本来这不符合本教程的风格,但是,请看官谅解,因为列位将来一定要阅读枯燥的东西的。这些枯燥的属于解释,均来自维基百科。 1、问题...

    王岩威 评论0 收藏0
  • Python理解面向对象

    摘要:面向对象编程,简称,是一种程序设计思想。面向过程与面向对象面向过程的程序设计把函数作为程序的基本单元。以上是在计算机世界里认识面向对象和面向过程,接下来给大家举个生活中的例子就拿你早上想吃鸡蛋灌饼为例。 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程 ...

    hatlonely 评论0 收藏0
  • Python面向对象编程 - 类和实例

    摘要:一面向对象编程。是一门面向对象的编程语言,通过对象实现对方法的调用。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。对于面向对象语言,重要的概念是类和实例。 一、preface 面向对象编程OOP:object oriented programming。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。Python是一门面向对象的编程语言,...

    Elle 评论0 收藏0
  • 如何系统地自学 Python

    摘要:这里推荐一本书源码剖析源码剖析豆瓣这本书把源码中最核心的部分,给出了详细的阐释,不过阅读此书需要对语言内存模型和指针有着很好的理解。   是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓?   幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。   Python 的设计哲学之一就是...

    zgbgx 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<