定义类
python使用关键字class
来定义类,在类名后的括号里写父类。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17class Student(object):
# 相当于Java的构造体,类的field可以直接赋值,不用事先定义
def __init__(self, name, age):
self.name = name
self.age = age
# 参数self相当于Java中的this,在调用方法的时候不需要指定,单如果没有这个参数就无法使用类的field
def study(self, course):
print(f'studing: {course}')
def watch_movie(self):
if self.age < 18:
print('%s只能观看《熊出没》.' % self.name)
else:
# 这是原作者 [jackfrued] 的爱好
print('%s正在观看岛国爱情大电影.' % self.name)
可见性
python并没有复杂而严格的可见性设置,虽然可以通过在方法和变量前加两个下划线来设置私有性,但这其实只是改变了访问规则而已。
1 | class Test: |
一般使用单下划线来表明方法或变量是受保护的,但这也只是一种隐含的意思而已。
@property
装饰器
可以使用@property来包装属性,这样属性将会被封装起来,使用@property装饰的方法可以作为getter来使用,想要使用setter则需要@xxx.setter来修饰。
1 | class Person(object): |