Python第6章学习笔记

self使用

class Test:
  def prt(self):
    print(self)    

t = Test()
t.prt()
  1. self在定义时需要定义,但是在调用时会自动传入。如上,如果最后一句写成t.prt(t)会报错。只定义了一个参数,却传入两个
  2. self的名字并不是规定死的,但是最好还是按照约定是用self
  3. self只能写在类的方法里,不能在类外部被调用。
  4. self总是指当前所在类的实例,而非调用这个方法的类的实例
class Omelet:
    def get_ingredients2(self,fridge):
        self.from_fridge=fridge.get_ingredients(self)

这里最后一个self是指omelet的实例,而非fridge的实例。

自定义类

class TestClassA:
    def __init__(self, b):
        self.attr1=b
        return

    def get_attr(self):
        self.attr1='a'
        print(self.attr1)

a=TestClassA()
#a=TestClassA(2)
#a.__init__(2)
a.get_attr()

1.创建对象,其实就是去调用这个类的init方法。自定义类可以不用重写init(), 就像a=TestClassA()这样调用。但是如果重写了方法,那么就要按照init方法定义的那样去传参。例如:a=TestClassA(2)
2. 规范的写法还是要重写下,可以在init方法里显示声明一些属性。例如: self.attr1=b
3. 以双下划线开头的都是私有属性,只能在自己类中使用。

字典定义:
还是需要先声明下,然后再访问键和值。
可以直接dicA={‘a’:1,’b’:2},但是不能像下面那么直接定义。

'''this is a wrong example'''
d['1']='a'
d['2']='b'
print(d)

面向对象编程:
1.方法功能尽量简单,多写几个方法,远比写一个业务发杂的方法好。
2.不需要在外部类使用的,或者外部类根本不需要关心的方法,可以定义为私有方法。外部类需要用到的,或者和外部类有交互的定义成公有方法。
3.一个私有方法,可以再设计一个外部接口,在接口里直接调用私有方法。比直接把方法写成公有的,更易扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值