首页 > 其他 > 详细

第二十三天

时间:2020-03-11 00:10:23      阅读:51      评论:0      收藏:0      [点我收藏+]

sys.argv 回顾

# python xxx.py alex sb cp d:\内容回顾.py d:\a

# 重命名
# python 函数的相关.py alex sb rename C:/Users/Administrator/Desktop/小丁变优秀的代码/day25 C:/Users/Administrator/Desktop/小丁变优秀的代码/day22


# 创建文件夹
# python 函数的相关.py alex sb mkdir C:/Users/Administrator/Desktop/小丁变优秀的代码/day31
import sys
import os
import shutil
# print(sys.argv)
if len(sys.argv)>=5:   #至少5个指令

    if sys.argv[1]=='alex' and sys.argv[2]=='sb':
        if sys.argv[3]=='cp' and len(sys.argv)==6:
            if os.path.exists(sys.argv[4]) and os.path.exists(sys.argv[5]):
               filename=os.path.basename(sys.argv[4])
               path=os.path.join(sys.argv[5],filename)
               shutil.copy2(sys.argv[4],path)
        elif sys.argv[3]=='rm' and len(sys.argv)==5:
            pass
            print('已经删除了')
        elif sys.argv[3] == 'mkdir' and len(sys.argv) == 5:
            os.mkdir(sys.argv[4])
            print(f'我们创建了{sys.argv[4]}的文件夹')
        elif sys.argv[3]=='rename' and len(sys.argv)==6:
            if os.path.exists(sys.argv[4]):
                if os.path.isfile(sys.argv[4]):
                    os.rename(sys.argv[4],sys.argv[5])
                else:
                    shutil.move(sys.argv[4],sys.argv[5])

else:
    print('输入的命令无效')

圆 周长 面积

class yuan():
    def __init__(self,r):
        self.r=r

    def zhou(self):
        return self.r*2*3.14

    def mian(self):
        return self.r**2*3.14

c=yuan(10)

print(c.zhou())

print(c.mian())


c=yuan(5)

print(c.zhou())

print(c.mian())

类,

这个类有什么属性,用什么方法,大致的样子

不知道具体的属性对应的值

对象:之前所有的属性都明确了

(类 内置的数据类型)

python中 一切都是对象

  1. int

  2. float

  3. dict

  4. str

  5. list

  6. tuple

  7. set

python 中一切皆对象

对象的类型就是类

所有的对象都有一个类型 class A 实例化出来的对象的类型就是A类

123的类型是int/float

‘asdasd‘ 的类型是str

{} 类型是dict

alex=Person() 的类型是Person

小白=Dog() 的类型是Dog

命名空间的问题

类中的变量 是静态变量

对象中的变量只属于对象本身 每个对象有属于自己的空间来储存对象的变量

当时有对象面去调用缪一个属性的时候会优先在自己的空间中寻找,找不到的话再从对应的类中寻找

如果自己没有就引用类的 类没有的话就报错

对鱼类来说 类中变量所有的 对象都是可以读取的 并且读取的是同一份变量

class A:
    Country="中国"
    def __init__(self,name,age,country):
        self.name=name
        self.age=age

        self.Country=country

    def fucn1(self):
        print(self)
    def func2(self):pass
    def func3(self):pass
    def func4(self):pass
    def func5(self):pass

a=A("aa",'83','a人')
b=A("bb",'83','b人')
a.country="日本人"
print(a.Country)
print(b.Country)
print(A.Country)

# a人
# b人
# 中国



class A:
    Country="中国"
    def __init__(self,name,age,country):
        self.name=name
        self.age=age



    def fucn1(self):
        print(self)
    def func2(self):pass
    def func3(self):pass
    def func4(self):pass
    def func5(self):pass

a=A("aa",'83','a人')
b=A("bb",'83','b人')
a.country="日本人"
print(a.Country)
print(b.Country)
print(A.Country)

#
# 中国
# 中国
# 中国

创建一个类

# 创建一个类

# class A:pass
# A.country=123
# print(A.country)  #属性的增加
# print(A.__dict__,type(A))  #查看或引用

初始化一个实例

b=A()

实现一个类,能够自动统计这个类的 实例化了多少个对象

class A():
    count=0
    def __init__(self,asas):
        A.count += 1
        pass
a=A('asda')
b=A('asdas')
b=A('asdas')
b=A('asdas')
b=A('asdas')
b=A('asdas')
b=A('asdas')
b=A('asdas')
b=A('asdas')
b=A('asdas')
print(A.count)

登陆问题

import  os
def login(name,password,file='userinfo'):
    with open(file,encoding='utf-8') as f:
        user,pwd=f.readline().strip().split('|')
        if name==user and pwd==password:
            return True,name
        else:
            print("密码错")
            return False


class User():
    def __init__(self,username,password):
        self.user=username
        self.pwd=password



    def change_pwd(self):
        oldpassword=input("请输入原密码")
        newpassword=input("请输入新密码")
        with open('userinfo', encoding='utf-8') as f1,open('userinfo.bak', mode="w",encoding='utf-8') as f2:

            for line in f1:
                user, pwd = line.strip().split('|')
                if user==self.user and pwd==oldpassword:
                    line='%s|%s\n'%(user,newpassword)

                f2.write(line)


        os.remove("userinfo")
        os.rename("userinfo.bak",'userinfo')

name=input('用户名')
password=input('密码')
ret=login(name,password)
if ret:
    print('登陆成功')

    cet = User(name,password)
    cet.change_pwd()

组合

作用:当你有好多期的课程

价格修改了 这时候 只用改一个值 所有的价格都更新了

方便代码修改


python22.course=python
python23.course=python
之前价格是2000

print(python22.course.money)
print(python23.course.money)
现在修改成3000
python.money=30000

print(python22.course.money)
print(python23.course.money)



# 学生类
# 姓名 性别 年龄 学号 班级 手机号
class Student:
    def __init__(self,name,sex,age,number,clas,phone):
        self.naem=name
        self.sex=sex
        self.age=age
        self.clas=clas
        self.phone=phone

class Clas:
    def __init__(self,cname,begint,teacher):
        self.cname=cname
        self.begint=begint
        self,teacher=teacher
爱上小丁=Clas("课程",'2019-03-12',"小丁")
小屋=Student("小屋","female",18,1,爱上小丁,13333333333)




print(小屋.clas,爱上小丁)
print(爱上小丁.begint)

# 一个类的对象是另一给类的属性
# 对象 变成了一个属性
#
# 爱上小丁 是一个对象
#
# 把他放到  小屋 这个类 里面  做一个对象
# 运用组合 将两个对象连接起来了


class Ke:
    def __init__(self,timee,kecheng,money):
        self.timee=timee
        self.kecheng=kecheng
        self.money=money
class Ban:
    def __init__(self,kecheng):
        self.kecheng=kecheng


python=Ke("100天",'python',20000)
linux=Ke("100天",'linux',10000)

python22=Ban(python)
linux11=Ban(linux)


print(python22.kecheng.money)
print(python.timee)
print(linux.money)


# 也可以这样实现

class Ke:
    def __init__(self,timee,kecheng,money):
        self.timee=timee
        self.kecheng=kecheng
        self.money=money
class Ban:
    def __init__(self,kecheng):
        self.kecheng=kecheng


python=Ke("100天",'python',20000)
linux=Ke("100天",'linux',10000)

python22=Ban('python')
linux11=Ban('linux')
python22.kecheng=python
print(python.money)
print(python.timee)

第二十三天

原文:https://www.cnblogs.com/xueba/p/12459552.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!