从人工智能到Python入门-第三篇

PYTHON学习之路第三篇

五、类的继承与属性、方法权限

from test4 import MyClass
#面向对象
class SonClass(MyClass):#继承
    #类变量
    name='py菜鸟'
    age=18    
#构造函数
#初始化对象的属性
def __init__(self,name,age):
    #实列变量
    self.name = name
    self.age = age

#实列方法
def outInf(self):
    print(self.name,self.age)

#私有方法或变量在名字前面加两个下划线
def __MyPrivateMethods():
    print('我的私有方法')

#类方法 适用于操作类变量
@classmethod
def AgeSum(cls):
    cls.age +=1
    print(cls.age

)

    #静态方法
    @staticmethod
    def MyStatic():
        print(MyClass.age)

mc = MyClass('cl',16)

#通过.可以添加实列变量,不可以定义私有变量
mc.__addbl=111
print(mc.__addbl)

mc.outInf()

#print(mc.name)

六、python解析json

import json

json_str='{"姓名":"老王","职业":"男模","年龄":18}'
#反序列化
info = json.loads(json_str)
print(info)

json_obj=[
    {"姓名":"老王","职业":"男模","年龄":18},
    {"姓名":"老王","职业":"男模","年龄":18}
]

list_info=json.dumps(json_obj)
print(list_info)

七、枚举仅支持3.4之后的版本

from enum import Enum

class Types(Enum):
    t1 = 1
    t2 = 2
    t3 = 3
    t4 = 4
    t5 = 5

types = Types
print(types.t1.value)
print(types.t1.name)

八、闭包

def curve_pre():
    a = 25
    def curve(x):
        return a*x*x
    return curve

a=10
f = curve_pre()
print(f(2))

def factory(pos):
    def go(step):
        #声明变量不是局部变量,记忆住上级调用的状态
        nonlocal pos
        new_pos=pos+step
        pos=new_pos
        return new_pos
    return go

tourist=factory(0)
print(tourist(2))
print(tourist(3))
print(tourist(5))

九、全局变量

origin = 0    
def go(step):
    #global声明全局变量
    global origin
    new_pos = origin+step
    origin=new_pos
    return new_pos

print(go(5))
print(go(10))

你可能感兴趣的:(从人工智能到Python入门-第三篇)