python类的专有方法

类的专有方法
__#__():
init  生成对象时
del   释放对象时
repr  打印转换
setitem  按照索引赋值
getitem  按照索引获取值
len  取长度
cmp   比较
call  调用函数
add   加
sub   减
mul   乘
div   除
mod   取余
pow    乘方
这些运算符都是可以重载的
对象的幅值都是浅复制
深拷贝是 
c1=class1()
c2=class1(c1.x,c1,y,...) 
消耗内存空间较大
浅拷贝:不改变原来数据的地址
对象可以改变原来数据的地址变量的内容

类的封装
class  money:
    def __init__(self):
        self.__money=100
    def show(self):
        print(self.__money)
num=money()
num.money=1000
print(num.money)
num.show()
1000
100
self数据加__变为私有变量,不可被修改
私有变量和私有方法用于 权限设计
私有方法也是在前面加__,只有在类的内部可以调用的方法
但是也可也访问,需要 
num._money__money=1000
num._money__show()  
访问内部方法和变量

多个文件之间调用类
例如定义一个文件类
class Testclassgo:
    def __init__(self):
    print("aaa")
AAA为目录,Testclass为程序文件 Testclassgo 为里面的类
方法1
from AAA.Testclass  import  Testclassgo
go=Testclassgo()

方法2
import AAA.Testclass
go=AAA.Testclass.testclassgo()

打印下标和索引
for i,v in enumerate("dsdss"):
    print(i,v)
0 d
1 s
2 d
3 s
4 s

数据的合并
s1="sdsadas"
s2="1234567"
for  i in zip(s1,s2):
    print("".join(i))
s1
d2


s1="sdsadas"
s2="1234567"
for  i,j in zip(s1,s2):
    print(i,":",j)
s : 1
d : 2

元组有多少个值,就会有相应的打印

t=("123","321")
print("%s%s"%t)

巧妙运用,其中*mid 为取出所有值
score=(111,323,324,32)
scores=sorted(score)
min1,*mid,max=scores
print(min1,*mid,max)

集合
s1=set([])
set1={1,2,3,1,2,3}
print(set1)
{1, 2, 3}
集合里面不会有重复的,尽管你写进去

set1={1,2,3,1,2,3}
for i in set1:
    print(i)
1
2
3
不会打印重复的

set1={1,2,3,1,2,3}
for i,v in enumerate(set1):
    print(i,v)
0 1
1 2
2 3

集合添加元素
set1={1,2,3,1,2,3}
set2={8,9,10}
set3={8,9}
set1.add(4)
print(set1)
set1.update([4,5,6])
print(set1|set2,set1>set2,set3.issubset(set2),set2.issuperset(set3))
sub是被包含,super是包含
| - & ^ 并集 差集 交集  各自独有的为^

print(set1.isdisjoint(set2)) 不想交

利用集合去重
import random
s=set([])
for  i  in range(int(input("N:"))):
    s.add(random.randint(1,1000))
print(sorted(s))

字典可以
{}.fromkeys({"1","2"},"3")
就是{'1': '3', '2': '3'}


students={ "1":{
       "name":"tom",
        "age":18
    }, "2":{
        "name":"ff",
        "age":12 }}
for key  in students:
    print(key,students[key])
同下
for key,value  in students.items():
    print(key,value)


service={
    "http":80,
    "ftp":21,
    "ssh":22
}
service["mysql"]=3306
print(service)
字典添加元素  存在key则更新value;否则全部增加
添加多个元素 可以用于字符统计
service.update(onedict)
service.update(http=8989,vsftp=80)
而service.setdefault("as",90)只会添加不存在的kye-value
注意格式
print(service.get("http"))  查看不存在则返回None

统计个数
import random
mystr=[]
for i in range(100):
    mystr.append(random.randint(20,100))
mydict={}
for num in sorted(mystr):
    if num in mydict:
        mydict[num]+=1
    else:
        mydict[num]=1
print(mydict)

统计句子单词个数
mydict={}
for i in input("英文句子").split():
    if i in mydict:
        mydict[i]+=1
    else :
        mydict[i]=1
for  key,value in mydict.items():
    print(key,value)
随机生成银行号和密码
显示001用%03d
import  random
mydict={}
for i in range(1,101):
    mydict["6102009%03d"%i]="redhat"
for i,j in mydict.items():
    print(i,j)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值