python学习/day11下午

with打开文件的用法,打开运行完后,不管有没有错,都会自动关闭
with open("a.txt","r") as f:
    x=f.read()
    print(x)

with open("a.txt","w") as f:
    f.write("456")

raise的作用:跑出异常,属于没有错误,自己主动抛出错误,并且下面的代码不会在执行
a=10
raise IndexError("错了")
print("哈哈哈")                #这句话不会在执行

try:
    a=10
    print(a)
    raise IndexError("错误")
except IndexError as e:
    print("到这里了",e)
"""
10
到这里了 错误
"""

自定义异常
class MyError(Exception):
    def __init__(self,msg):
        self.msg=msg
    def __str__(self):
        return self.msg+"---超级异常侠"
try:
    raise MyError("我其实没错")
except MyError as e:
    print("异常了",e)
异常了 我其实没错---超级异常侠

class Student():
    def __init__(self,name,sex,age,score):
        self.name=name
        self.sex =sex
        self.age =age
        self.score=score
wangfei=Student("王非","女",18,66)      #由类制作
print(dir(wangfei))                #可以找出wangfei的内置函数,和属性
print(wangfei.name,wangfei.sex,wangfei.age,wangfei.score)

class Stu():
    address="光明顶"
    def __init__(self,name):
        self.name=name
zs=Stu("张无忌")
print(zs.name)
print(zs.address)
print(Stu.address)
delattr(zs,"name")
print(zs.name)

#单个用A不能用,但是搭配B之后可以使用
class A():
    def hehe(self):
        print(self.name)

class B(A):
    def __init__(self,name):
        self.name=name
zs=B("张三")
zs.hehe()

#单个用A不能用,但是搭配B之后可以使用
class A():
    def hehe(self):
        print(self.name)

class B(A):
    def __init__(self,name):
        self.name=name
zs=B("张三")
zs.hehe()

#函数方法可以在外部扩展,如下
class A():
    def __init__(self,name):
        self.name=name

def haha():
    print("哈哈")
a=A("张三")
a.haha1=haha
a.haha1()
"""
哈哈
"""

#类方法
class A():
    money=1000
    def __init__(self,name):
        self.name=name
    @classmethod
    def hh(cls):
        print(cls.money)
A.hh()
b=A("张三")
b.hh()

单例模式,可以用在数据库,这样只建立一条管道即可
class A():
    def __new__(cls, *args, **kwargs):
        if not hasattr(A,"xiaogou"):
            cls.xiaogou=object.__new__(cls)
        return cls.xiaogou
    def __init__(self,name):
        self.name=name
a=A("哈哈")
b=A("呵呵")
c=A("嘿嘿")
print(a.name)
print(b.name)
print(c.name)
"""
以上三个结果都为嘿嘿,最后一次值的名字
"""

#getcwd
a/b/c/d

创建级联目录
a="a\\b\\c\\d"
import os
b=a.split("\\")
print(b)
p=os.getcwd()
for dg in b:
    p=p+"\\"+dg
    if not os.path.exists(p):
        os.mkdir(p)
a="a\\b\\c\\d"
import os
b=a.split("\\")
print(b)
p=os.getcwd()
for dg in b:
    p=os.path.join(p,dg)
    if not os.path.exists(p):
        os.mkdir(p)

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/88121314