首页 > 编程语言 >2023-01-10 python基础2

2023-01-10 python基础2

时间:2023-01-10 22:34:29浏览次数:40  
标签:__ 10 01 python self say print class def

迭代器

第一次接触,类似于for循环个人感觉 (虽然写了这么个例子,但是不知道迭代器用在哪里,等以后写写代码看看)

class 迭代器:
    def __init__(self,num):
        self.num = num

    def __next__(self):
        if  self.num<=0:
            raise StopIteration
        self.num=self.num-1
        return self.num
    
    def __iter__(self):
        return self

for i in 迭代器(1000):
    print(i)
              
生成器

for循环的变异体,个人理解是为了节约资源(用的比较少,scapy中可能会用到)

def shengchengqi():
    url =0

    for i in range(1111):
        yield url
        print("你生成了%s个url"%url)

response = shengchengqi()
for i in range(11):
    print(next(response))
super 调用超类的方法

简单理解就是继承过程中,子类如果有跟父类一样的方法,用supper直接继承

class A:
    def say(self):
        print("我是A类的say方法")

class B(A):
    def say(self):
        print("我是B类的say方法")
        super(B, self).say()
#
# class C:
#     def say(self):
#         print("我是C类的say方法")
b = B()
b.say()
set get del (没学会)

 

hasattr getattr setattr

这三个就是操作类中的属性,判断、取出之类的,个人感觉平常开发用不到,框架可能会用,先略过,继续往下

 

property

把方法当作属性

class A:
    def foo(self):
        return 50011

a= A()
res = a.foo()
print(res)       #只是获取一个返回值,还要把他实例化类 再调用方法,很麻烦,所以出来了property



改写
class A:
    def __init__(self,r,w):
        self.r = r
        self.w = w
    @property   #在这里用上
    def foo(self):
        resone =self.r*self.w
        return resone

a= A(100,4)
res = a.foo    #这里相当于直接调用属性,没有括号了,没理解还是,加括号怎么了,不是一样的效果吗
print(res)

 

可变对象和不可变对象

个人理解是改变了内容内存地址能不能改变,内存地址变化就是可变,反之为不可变

不可变:整数 字符串 元组

可变:字典 列表

 

new方法

new方法用于操作不可变对象(很少用到)

def里面的init不是第一个方法,new才是,这个很少用,用到再说

 

repr和str方法

__repr 常用于python2

__str常用于python3

简单的理解就是打印显示一个类的功能概念,而不是输出一个内存地址

 

class A():
    def __str__(self):
        return "这个类是我用来测试的,想说明__str是用来介绍类的功能"
    def __init__(self,val,name):
        self.val=val
        self.name=name

a = A('mingcheng','wahah')
print(a)

 

递归

标签:__,10,01,python,self,say,print,class,def
From: https://www.cnblogs.com/canlang9511/p/17041556.html

相关文章

  • ERROR 1067 (42000): Invalid default value for 'xxx字段'
    报错版本:mysql-5.7.351、报错完整提示信息;ERROR1067(42000):Invaliddefaultvaluefor'LOCK_TIME_'2、原因:使用source命令迁移activiti表数据sql的时候,其中act......
  • [oeasy]python0043_八进制_oct_octal_october_octave
    八进制(oct)回忆上次内容什么是转义?转义转义转化含义​​\​​是转义字符​​\n​​、​​\r​​是转义序列还有什么转义序列吗?​​\a​​是响铃​​\b​​退格......
  • [oeasy]python0043_八进制_oct_octal_october_octave
    八进制(oct)回忆上次内容什么是转义?转义转义转化含义\是转义字符\n、\r是转义序列还有什么转义序列吗?\a是响铃\b退格键\t水平制表符tab键\v......
  • 闲话 23.1.10
    闲话新年了……新年的军队打算学习小孩召开法(为未来的模拟赛的不可做题准备着(今日是啥都没干日!ETT怎么学?\((\max,+)\)卷积(?)虽然但是,现在我们不考虑一般......
  • Micropython 呼吸灯,使用 machine.pwm
    学习ESP32micropython,使用网路课件最方便:三、PWM呼吸灯利用PWM的调制作用,制作呼吸灯,pwm()没有解释的很清楚,再来一个连接PWM(脉宽调制)frommachineimportPin,P......
  • Python酒店评论文本数据分析:tf-idf、贝叶斯、逻辑回归,支持向量机SVM、K最邻近算法KNN
    全文链接:http://tecdat.cn/?p=31233原文出处:拓端数据部落公众号分析师:YuanyuanZhang随着互联网的普及和移动端的应用的飞速发展,消费者在各大电商平台进行活动交易时产......
  • Windows server 2019 打开ping的方法
    ​在windowsserver2019中,用ping服务器ip地址时,会ping不通,是因为防火墙阻止PING导致的,需要放通PING。 解决办法:一、命令行方式进入服务器后点击开始——运行输入命令......
  • Python 学习笔记
    最早是在大一的时候接触Python,最初是看的廖雪峰的Python教程,草草学习了几天,自那以后就再也没有学过Python语言了。虽然没怎么学,但是用起来也不算太难,遇到不会的就查。......
  • luogu P5291 [十二省联考 2019] 希望
    题面传送门真的很想吐。题目的意思大概就是在一棵树上选出\(k\)个联通块,使得这\(k\)个联通块有交。显然联通块的交还是联通块,因此转化为对联通块计数。而联通块个数等于......
  • 2022.1.10
    ABC284F.ABCBAC直接枚举\(i\)然后\(hash\)处理即可,记得不要使用自然溢出。ABC284G.OnlyOne这题有一个非常关键的性质:每一个点的贡献都是等价的。因此我们只要算出......