码迷,mamicode.com
首页 > 编程语言 > 详细

python之面向对象与实例属性

时间:2019-07-28 19:45:08      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:定义   init   大学   japan   spl   经典   知识   closed   保存状态   

一、三大编程范式

1.1面向过程编程

面向对象编程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。

# 打扫房间
print(开始扫地)

def step_1():
    print(准备扫帚)

def step_2():
    print(打扫房间)

def step_3():
    print(扫完,将扫帚放回原地)

step_1()
step_2()
step_3()
执行结果如下:

开始扫地
准备扫帚
打扫房间
扫完,将扫帚放回原地

1.2函数编程

函数式编程:函数式 = 编程语言定义的函数+数学意义的函数;通俗来讲,函数式就是用编程语言去实现数学函数。这种函数内对象是永恒不变的,要么参数是函数,要么返回值是函数,没有for和while循环,所有的循环都由递归去实现,无变量的赋值(即不用变量去保存状态),无赋值即不改变。

1.3面向对象编程

面向对象就是将编程当成是一个事物,编程就是设置事物能够做什么事。二

技术图片
def personal(name,gender,type):
    #人的动作
    def enroll(personal):
        print(%s去福建上学 %personal[name])
    def province(personal):
        print(北京大学经济与管理学院录取了[%s] %personal[type])

    def init(name,gender,type):
        personal1 = {
            "name": name,
            "gender": gender,
            "type": type,
            "enroll": enroll,
            "province":province
        }
        return personal1
    return init(name,gender,type)

p1=personal(czd,male,fzuniv)
print(p1)
p1[enroll](p1)
p2=personal(dfz,female,bduniv)
print(p2)
p2[province](p2)
View Code

二、类与对象的基本理解

类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念。

对象:就是基于类而创建的一个具体的事物(具体存在的),也是特征和动作整合到一块。

类与对象的关系:对象都是由类产生的。

实例化:由类生产对象的过程叫实例化,类实例化的结果就是一个对象,或者叫做一个实例(实例=对象)

三、类与对象的相关知识

3.1类相关知识

python2中有经典类和新式类,python3中都是新式类.

新式类和经典类声明的最大不同在于,所有新式类必须继承至少一个父类

#声明一个类

#经典类
class Chinese:
    这是一个中国人的类
    pass
print(Chinese)

#实例化到底干了什么
p1=Chinese()      #实例化过程
print(p1)         #返回一个结果,相当于return


#新式类
class Chinese(object):     #(父类)
    pass
print(Chinese)

3.1.1 属性

类是用来描述一类事物,类的对象指的是这一类事物中的一个个体。

事物就要有属性,属性分:

    a.数据属性:就是变量

    b.函数属性:就是函数,在面向对象里通常称为方法

概括:数据属性即变量,类的定义与函数又极其类似,其实可以用函数的作用域来理解类的属性调用。

3.1.2查看类属性

定义的类属性到底存放到哪里了?有两种方式查看

     dir(类名):查出的是一个名字列表

    类名.__dict__:查出的是一个字典,key为属性名,value为属性值

3.2对象相关知识

class Japanese:
    party=民主党
    def __init__(self,name,age,gender):
        self.mingzi=name
        self.nianling=age
        self.xingbie=gender
    def sui_di_tu_tan():
        print(朝着....就是一口痰)
    def cha_dui(self):
        print("%s查到了前面" %self.mingzi)

p1=Japanese(dsa,16,male)            #----->__init__(self,name,age,gender)

print(Japanese.__dict__)
Japanese.sui_di_tu_tan()
Japanese.cha_dui(p1)

3.3类属性的增删改查

class Chinese:
    party=新民党
    def __init__(self,name,age,gender):
        self.mingzi=name
        self.nianling=age
        self.xingbie=gender
    def sui_di_tu_tan(self):
        print(%s朝着....就是一口痰 %self.mingzi)
    def cha_dui(self):
        print("%s查到了前面" %self.mingzi)
    def eat_food(self,food):
        print(%s正在吃%s %(self.mingzi,food))

p1=Chinese(李志强,23,male)
p1.sui_di_tu_tan()
p1.eat_food(大盘鸡)


p2=Chinese(caw,25,female)
p2.eat_food(佛跳墙)

# ------------查
# print(Chinese.party)

#--------------改
Chinese.party=guomindang
print(Chinese.party)

 #------------增
Chinese.guojia=中国
print(Chinese.guojia)

#  ----------删
del Chinese.party
print(Chinese.__dict__)

3.4实例属性的增删改查

技术图片
class Chinese:
    country=China
    def __init__(self,name):
        self.name=name
    def play_ball(self,name):
        print(%s正在打%s%(self.name,ball))

p1=Chinese(czd)
print(p1.__dict__)

# -----------查看
print(p1.name)
print(p1.play_ball)

# -----------增加
p1.age=18
print(p1.__dict__)
print(p1.age)

#------------修改
Chinese.country=日本
print(Chinese.country)
p1.age=20
print(p1.__dict__)
print(------>,p1.age)

#------------删除
del Chinese.country
print(Chinese.__dict__)
View Code

四、对象和实例的补充

技术图片
class Chinese:
    country=China
    l=[a,b]
    def __init__(self,name):
        self.name=name
    def play_ball(self,name):
        print(%s正在打%s%(self.name,ball))

p1=Chinese(czd)
print(p1.l)

p1.l=[1,2,3]
print(Chinese.l)       #改的是p1的,Chinese.l不变
print(p1.__dict__)

p1.l.append(c)         #在类里面增加
print(p1.__dict__)
print(Chinese.l)
View Code

 

 

 

 

 

 

 

 

 

 

 

python之面向对象与实例属性

标签:定义   init   大学   japan   spl   经典   知识   closed   保存状态   

原文地址:https://www.cnblogs.com/changzhendong/p/11260329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!