为了账号安全,请及时绑定邮箱和手机立即绑定

Python(七) 高级部分:面向对象

标签:
Python

一、类的定义

复制代码

# 面向对象#有意义的面向对象代码# 类 =  面向对象# 类、对象#实例化# 类最基本的作用:封装
class Student():
    name = ''
    age = 0    def print_file(self):        print('name'+self.name)        print('name'+str(self.age))

student=Student() #实例化student.print_file()

复制代码

 

二、浅谈函数与方法的区别

 

方法 和 函数的区别
方法 :设计层面 
函数:程序运行、过去式的一种称谓

三、类与对象。

类是描述 一类的 行为和特征

对象是具体的描述对象

类像一个模板一样  可以生成许多不同的对象

 

四、构造函数

复制代码

#类、对象class Student():
    name = ''
    age = 0    #行为 与 特征
    def __init__(self):        #构造函数
        print('student')    def print_file(self):        print('name'+self.name)        print('name'+str(self.age))

s=Student()
s.__init__()

student  #实例化时候 调用了构造函数student   #单独调用了了构造函数

复制代码

构造函数不能返回除了None 以外的值

 

 

 

五、区别模块变量与类中的变量

六、类变量与实例变量

类变量:和类相关的变量

实例变量:和对象相关联的变量

复制代码

class Student():
    name = ''  #类变量
    age = 0    #行为 与 特征
    #类变量、实例变量
    def __init__(self,name,age):        #构造函数
        #初始化对象的属性
        self.name=name  #定义实例变量
        self.age=age        # print('student')

    def print_file(self):        print('name'+self.name)        print('name'+str(self.age))

s=Student('大明',20)print(s.name)  #打印实例变量 需要在类里面保存实例变量

  print(Student.name) #打印类变量

 

大明
''

复制代码

 

七、类与对象的变量查找顺序

实例名称. __dict__  类中实例变量

 

八、self与实例方法

self 代表的实例 而不是类

 

九、在实例方法中访问实例变量与类变量

复制代码

class Student():

    name = 'qiyue'  #类变量
    age = 0

    #行为 与 特征
    #类变量、实例变量
    def __init__(self,name,age):
        #构造函数
        #初始化对象的属性
        self.name=name  #定义实例变量
        self.age=age
        print(self.name)
        print(self.__class__.name) #在实例方法中访问类变量
        print(Student.name)
        # print('student')

    def print_file(self):
        print('name'+self.name)
        print('name'+str(self.age))

s=Student('大明',20)

大明  #实例变量
qiyue #访问类变量
qiyue # 类变量

复制代码

 

十、类方法

复制代码

class Student():

    sum = 0
    name = 'qiyue'  #类变量
    age = 0

    #行为 与 特征
    #类变量、实例变量
    def __init__(self,name,age):
        #构造函数
        #初始化对象的属性
        self.name=name  #定义实例变量
        self.age=age
        self.__class__.sum +=1
        print('当前学生总数为:'+ str(self.__class__.sum))
        # print('student')

    #实例方法
    def do_homework(self):
        print('do_homework')

    @classmethod  #类方法
    def plus_sum(cls):
        cls.sum +=1
        print(cls.sum)
        

s=Student('大明',20)
Student.plus_sum()


结果:
当前学生总数为:12

复制代码

 

十一、静态方法

和类和对象没有关系  建议不要经常用

    @staticmethod #静态方法
    def add(x,y):
        print('This is 静态方法')

 

十二、成员可见性:公开和私有

 通过方法来改变类中变量的值

public  private python中没有这些关键字

在变量和方法前面加上双下划线 name __name

python 允许 实例化点来添加新的变量

通过 _类名__私有变量

 

十三、没有什么是不能访问

十四、继承.

复制代码

class Human():
    sum = 0
    def __init__(self,name,age):
        self.name = name  
        self.age = str(age)
        
    def get_name(self):
        print(self.name)class Student(Human):
    # sum = 0
    def __init__(self,school,name,age):
        self.school = school  
        Human.__init__(self,name,age)
        # self.__score = 0
        # self.__class__.sum +=1
   
    def do_homework(self):
        print('do_homework')

s = Student('学校','拾光',18)
print(s.sum)
print(s.name)
print(s.age)
print(s.get_name())

结果:0拾光18拾光
None

复制代码

 

十五、子类方法调用父类方法:super关键字

复制代码

class Human():
    sum = 0
    def __init__(self,name,age):
        self.name = name  
        self.age = str(age)
        
    def get_name(self):
        print(self.name)class Student(Human):
    # sum = 0
    def __init__(self,school,name,age):
        self.school = school  
        # Human.__init__(self,name,age)
        super(Student,self).__init__(name,age)
        # self.__score = 0
        # self.__class__.sum +=1
   
    def do_homework(self):
        print('do_homework')

s = Student('学校','拾光',18)
print(s.sum)
print(s.name)
print(s.age)
print(s.get_name())


结果:0拾光18拾光
None

复制代码

 

https://img1.sycdn.imooc.com//5b783ea500017c3710360713.jpg

 

 

 https://img1.sycdn.imooc.com//5b783eae0001943610350667.jpg

原文出处:https://www.cnblogs.com/zhangtaotqy/p/9495538.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消