138 lines
2.9 KiB
Python
138 lines
2.9 KiB
Python
class Person(object):
|
|
|
|
def __init__(self, name, age):
|
|
self._name = name
|
|
self._age = age
|
|
|
|
# 访问器 - getter方法
|
|
@property
|
|
def name(self):
|
|
return self._name
|
|
|
|
# 修改器 - setter方法
|
|
@name.setter
|
|
def name(self, name):
|
|
self._name = name
|
|
# 访问器 - getter方法
|
|
@property
|
|
def age(self):
|
|
return self._age
|
|
|
|
|
|
def play(self):
|
|
if self._age <= 16:
|
|
print('%s正在玩飞行棋.' % self._name)
|
|
else:
|
|
print('%s正在玩斗地主.' % self._name)
|
|
|
|
|
|
def main():
|
|
person = Person('王大锤', 12)
|
|
person.play()
|
|
person.name = 'jax'
|
|
person.play()
|
|
# person.name = '白元芳' # AttributeError: can't set attribute
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|
|
# %%
|
|
from math import sqrt
|
|
|
|
|
|
class Triangle(object):
|
|
|
|
def __init__(self, a, b, c):
|
|
self._a = a
|
|
self._b = b
|
|
self._c = c
|
|
|
|
@staticmethod
|
|
def is_valid(a, b, c):
|
|
return a + b > c and b + c > a and a + c > b
|
|
|
|
def perimeter(self):
|
|
return self._a + self._b + self._c
|
|
|
|
def area(self):
|
|
half = self.perimeter() / 2
|
|
return sqrt(half * (half - self._a) *
|
|
(half - self._b) * (half - self._c))
|
|
|
|
|
|
def main():
|
|
a, b, c = 3, 4, 5
|
|
# 静态方法和类方法都是通过给类发消息来调用的
|
|
if Triangle.is_valid(a, b, c):
|
|
t = Triangle(a, b, c)
|
|
print(t.perimeter())
|
|
# 也可以通过给类发消息来调用对象方法但是要传入接收消息的对象作为参数
|
|
# print(Triangle.perimeter(t))
|
|
print(t.area())
|
|
# print(Triangle.area(t))
|
|
else:
|
|
print('无法构成三角形.')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
# %%
|
|
from math import sqrt
|
|
|
|
|
|
class Triangle(object):
|
|
|
|
def __init__(self, a, b, c):
|
|
self._a = a
|
|
self._b = b
|
|
self._c = c
|
|
|
|
@staticmethod
|
|
def is_valid(a, b, c):
|
|
return a + b > c and b + c > a and a + c > b
|
|
|
|
def perimeter(self):
|
|
return self._a + self._b + self._c
|
|
|
|
def main():
|
|
a, b, c = 3, 4, 5
|
|
# 静态方法和类方法都是通过给类发消息来调用的
|
|
print(Triangle.is_valid(a, b, c))
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
# %%
|
|
from math import sqrt
|
|
|
|
|
|
class Triangle(object):
|
|
|
|
def __init__(self, a, b, c):
|
|
self._a = a
|
|
self._b = b
|
|
self._c = c
|
|
|
|
|
|
@classmethod
|
|
def create_basic(cls):
|
|
return cls(1,2,3)
|
|
|
|
@staticmethod
|
|
def is_valid(a, b, c):
|
|
return a + b > c and b + c > a and a + c > b
|
|
|
|
def perimeter(self):
|
|
return self._a + self._b + self._c
|
|
|
|
def main():
|
|
a, b, c = 3, 4, 5
|
|
# 静态方法和类方法都是通过给类发消息来调用的
|
|
print(True if Triangle.is_valid(a, b, c) else False)
|
|
triangle = Triangle.create_basic()
|
|
print(triangle.perimeter())
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
# %%
|