ICode9

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

python面向对象编程(一)

2022-09-09 16:31:05  阅读:180  来源: 互联网

标签:__ name python age 面向对象编程 print self def


一、面向对象

1、定义

 

站在上帝的视角,世间万物一切皆是对象,我们把拥有共同的属性分为一类,而这就是closs的由来

 

2、类与对象

①、定义

所谓类就是类别,类简单的理解就是⼀系列对象相似的特征与技能的结合体。⽐如我们定义⼀个⼈的类,那么⾥⾯的⽅法就是⼈的特征。在程序⾥⾯,需要特别强调的是先定义类,再使⽤类(对类进⾏实例化)。在Python中,定义类的关键字是class,所有类的基类是object。

class Person(object):

def __init__(self,name,age):

self.name=name

self.age=age

②、规则

类的首字母必须是大写的,

类里面编写的方法,其实本质等价于函数式编程里面编写的函数

③、函数式编程与面向对象式编程实例区别

函数式编程

 

def show():
    print('this is a class')

 

show()

 

面向对象式编程

 

class Person(object):
    def show(self):
        print('this is a class')
obj=Person()
obj.show()

结果是一致的

 

 

二、类的调用

 

class Person(object):
#初始化(针对类的初始化)
    def __init__(self,name,age):           
        # 实例化属性的过程
        self.name=name
        self.age=age
        print('开始执行')

#调用部分
    def show(self):
        print('my name is {name},and my age is {age}'.format(
            name=self.name,age=self.age))
#析构方法(清理作用)
    def __del__(self):
        print('执行结束')
obj=Person(name='wuya',age=18)
obj.show()

 

思路:

 

①、先执行__init__方法
②、执行具体调用的方法
③、最后执行__del__方法

 

执行结果

 

三、类的属性

1、组成

数据属性:属于类

实例属性:属于对象

2、案例

class Person(object):
    city='xian'
    def __init__(self,name,age):       
        self.name=name
        self.age=age
    def show(self,sex='boy'):          
        print('my name is {name},and my age is {age},所在城市:{city},sex is {sex}'.format(name=self.name,age=self.age,city=self.city,sex=sex))
#设置动态参数
    def info(self,**kwargs):
        return kwargs
obj=Person(name='wuya',age=18)
obj.show()
print(obj.info(name='wuya',age='18',address='xian',work='testDev'))

四、类的方法

 

1、普通方法

 

2、特性方法:(只读)

 

3、案例:

 

#普通方法

 

class Person(object):
    def show(self):
        print('这是一个普通方法')
#特性方法
    @property
    def info(self):
        print('特性方法是只读属性')
#普通方法 方法与方法之间的调用
    def login(self,username,password):
        if username=='wuya' and password=='admin':
            return True
        else:
            return False

 


    def profile(self,username,password):
        if self.login(username=username,password=password):
            print('访问个人主页成功')
        else:
            print('重定向')
obj=Person()
obj.show()
obj.info              #info使用的是特性方法,只读属性,不做更改,即没有括号,不赋值

obj.profile(username='wuya',password='admin')

 

五、封装

 

封装:通过数据属性以及实例属性来体现的

 

案例:更改名称

 

class Person(object):
    def __init__(self,name):
        self.name=name

    def getName(self):                     
        return self.name
    def setName(self,name):               
        if len(name)>2 and len(name)<6:
            self.name=name
        else:
            print('名字长度不符合')
    def show(self):
        print(self.name)
obj=Person(name='wuya')                     
print(obj.getName)
obj.setName(name='5676677')                 
print(obj.getName())                        

 

结果

 

在范围内

不在范围内

 

标签:__,name,python,age,面向对象编程,print,self,def
来源: https://www.cnblogs.com/L2119/p/16673251.html

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

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

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

ICode9版权所有