类定义、属性、初始化

类定义、属性、初始化

面向过程 --所有逻辑都是自己在考虑

面向对象 --

在Python里面一切皆对象 ,比如定义a = 'Fyn' 时就有很多方法,那么a就是一个对象

一、类定义

类 是一个独立存放变量(属性/方法)的空间

在Python里类就是一个封装

'''
    类的定义
    类的命名要:
        1、大驼峰命名法  FynNameAge
        2、小驼峰命名法  fynNameAge
    变量名的命名:
        test_time_person
    类的三大属性
        1、类名
        2、属性
        3、方法
'''
#1、类的定义
class Person:
    pass
#2、在类外面访问属性
class Sion:
    name = '小茗同学'
print(Sion.name) #小茗同学
​
#3、在类外面添加属性
class Per:
    pass
Per.name2 = '小江同学'
print(Per.name2)  #小江同学
​
'''
    4、类的实例化  对象
    1、实例也是一个独立存放变量的空间
    实例属性:
        对象添加的属性,它的空间是独立的,其他的访问不到
    class Persion:
        name = '小红同学'
    xm = Persion()   --实例化
    xm.name2  = '小健将'
    print(Persion.name2)  --访问不到(报错)
    
    实例化对象既能访问实例属性,也能访问类属性
    类只能访问类属性
'''
#列1
class Preion:
    name = '小米同学'  #属性
a = Preion()  #实例化
print(a.name) #小米同学
​
#列2
class Car:
    boon = 4
audi = Car()
bama = Car()
'''
    私有属性:
        属于这个类的
        一般不要在外面去调用
    class Sion:
        name = '小茗同学'
        _heigth = 220   --第一种 私有属性  ,也可以在外面调用,但是这种是约定俗成的私有属性(一个下划线),但是这种可以通过类的实例化来调用
        __width = 300   --第二种 私有属性,强制私有属性(两个下划线),不能再外面调用(就算是;类的实例化也不能在调用)
'''

二、类方法

就是一个函数

#方法
class Car:
    def run(self):  #self 是实例化本身,类里面一般都要写self,如果不写的话对象在调用的时候会报错
        print('汽车正在跑!')
#调用方法
Car.run()
#实例对象调用类方法
aodi = Car()  
aodi.run()    #Car.run(aodi)
​
#类方法
class vbg:
    def run():    #类方法,在类里面,没有参数都是类方法
        pass
    def runc(self):  #实例方法
        pass

三、初始化和析构

#类的初始化 def __init__:
'''
    魔法方法就相当于java里的静态方法一样,在类加载的时候就一起加载进去了
    魔法方法里的一种  双下划线开头,双下划线结尾的,称之为魔法方法
    魔法方法在Python里有特殊的作用
    他们的调用都是由Python解释器调用的
    不是我们去主动调用的
    __init__
        在实例化的一瞬间,Python解释器主动去调用
'''
#__init__ :魔法方法在对象实例化的时候就调用,不需要手动去调用
class Car:
    def __init__(self,name,age):  #在对象实例化后就可以不用去手动的一个一个去赋值了
        self.name = name
        self.age = age
aodi = Car(奥迪,2018)
​
#__del__  实例化对象引用数为0,它才会执行
​
class Car:
    def __init__(self):
        print('购买了一辆车!')
    def __del__(delf):
        print('车报废!')
bum = Car()
del num

猜你喜欢

转载自blog.csdn.net/qq_41741971/article/details/89441998