Python教程

python面向对象编程(一)

本文主要是介绍python面向对象编程(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、面向对象

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())                        

 

结果

 

在范围内

不在范围内

 

这篇关于python面向对象编程(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!