您的位置:首页 > 编程语言 > Python开发

Python第6章学习笔记

2017-01-10 14:52 267 查看
self使用

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

t = Test()
t.prt()


self在定义时需要定义,但是在调用时会自动传入。如上,如果最后一句写成t.prt(t)会报错。只定义了一个参数,却传入两个

self的名字并不是规定死的,但是最好还是按照约定是用self

self只能写在类的方法里,不能在类外部被调用。

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.一个私有方法,可以再设计一个外部接口,在接口里直接调用私有方法。比直接把方法写成公有的,更易扩展。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: