资讯专栏INFORMATION COLUMN

python:面向对象的基本知识

Yang_River / 553人阅读

摘要:面向对象类是现实世界或思维世界的实体在计算机中的反映它将数据以及这些数据上的操作封装在一起属性特征方法函数行为构造函数初始化类的特征构造函数是自动被调用的,也可显式调用,但不能定义值,只能返回一般不用作用初始化类的特征值,让对象之间变

面向对象:
#类是现实世界或思维世界的实体在计算机中的反映
#它将数据以及这些数据上的操作封装在一起

# 属性-特征 
    
# 方法(函数)-行为
    # 构造函数-__init__() 初始化类的特征
    构造函数是自动被调用的,也可显式调用,但不能定义return值,只能返回None(一般不用)
    作用:初始化类的特征值,让对象之间变的不同
1 类命名
# 首字母大写;单词之间大写连接
2 构造函数(特殊的实例方法)
# 2.1 默认被调用;亦可被主动调用
# 2.2 只能返回None,它不是用来返回值的
# 2.3 作用:让模板创建不同的对象,初始化对象的特性
3 属性
# 类变量(用"="号赋值!!!) :Students.sum 
    #规范:通过方法修改类变量
    # self.__class__.变量 访问类变量
# 实例变量
    # self.变量 定义实例变量
# __dict__ 内置函数(同__all__,定义import*的范围):对象下所有变量的字典
    # dict需在实例中调用,在类中不准确。
4 方法
# 4.1 实例方法
    # self 显胜于隐 相当于this,只和实例对象有关,和类无关
        #访问实例变量,要加self
    # 访问类变量 __class__ 指定的类 Student
    # 不要操作与对象无关的变量,请用类方法
    
# 4.2 类方法 @classmethod装饰器
    # 在函数前加上一个@classmethod 将self改成cls
    # 避免逻辑错乱,不要用对象调用类方法
    # 可以访问类变量 cls.sum(实例方法:self.__class__.变量 )
    # 调用:类.类方法() (不建议用对象调用类方法,不合逻辑)
    
# 4.3 静态方法 @staticmethod,不推荐用此方法
    # 在函数前加上一个@staticmethod
    # 可以同时被 对象、类 调用
    # 可以访问类变量 Student.sum,和变量关联性不大的方法时用
5 成员的可见性
# 只允许内部的方法操作变量,避免直接修改数据变量
# __ 前面加 双下划线 变量变成私有
6 继承性
# 建议一个类多带带成一个文件
# super 指代父类 Python3.x 和 2.x 的一个区别是:3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx
# 子类调用父类 属性、方法 时,优先使用super()
案例:
class Student():
    sum=0
    def __init__(self,name1,age):
        self.name=name1
        self.age=age
        self.__score=0
        print(self.name)
        
        #在实例方法中不要操作与对象无关的变量,请用类方法
        #self.__class__.sum+=1
        #print((self.__class__.sum))
        #2.2 return "只能返回None"
    
    @classmethod
    def plus_sum(cls):
        cls.sum+=1
        print("我们班有:",cls.sum)
        
    @staticmethod
    def add(x,y):
        print("This is a static method")
    def do_homework(self):
        print("写作业")
        
    def marking(self,score):
        self.__score=score
        print(self.name+"同学本次成绩是"+str(self.__score))

class people
#实例化
s1=Student("石敢当",20)
r1=s1.marking(98)

Student.plus_sum()
s1=Student("石当2",22)
Student.plus_sum()

#2.1 很少调用构造函数,只是证明可用
#a=s1.__init__()
# print(a)
# print(type(a))

#print(s1.name)
#print(s1.__dict__)
#print(Student.__dict__)

s1.do_homework()

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

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

相关文章

  • 学习Python建议

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

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

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

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

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

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

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

    zgbgx 评论0 收藏0

发表评论

0条评论

Yang_River

|高级讲师

TA的文章

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