我需要创建一个名为 Color 的类。
- 代码 1 构造函数
- 这需要 2 个参数
- 代码 2 属性
- 1 处房产是公共的
- 1处房产是私人的
- 为 1 个私有属性创建访问器和资源库
- 实例化上面创建的类
- 输出两个属性
我相信我已经能够创建类以及构造函数,但是我遇到的问题是公共/私有属性以及其他部分困扰着我。
class Color:
def __init__(self,full_name,birthday ):
self.name = full_name
self.birthday = birthday
def age(self):
return self.birthday
def fname(self):
return _self.name
object = Color()
使用 python @property
getter 和 setter 装饰器,从实例对这些的调用是无法区分的。
内部工作原理遵循私有属性的前导下划线约定,而不诉诸双下划线名称重整。
class Homework:
def __init__(self, param1, param2):
self._param1 = param1 # private attribute
self.param2 = param2 # public attribute
@property
def param1(self):
"""accessor for private parameter
"""
return self._param1
@param1.setter
def param1(self, value):
"""setter for private parameter
"""
self._param1 = value
homework = Homework('The great secret', 'The public life of Napoleon')
# accessing the parameters follow the same syntax
print(homework.param1)
print(homework.param2)
# setting the parameters also follow the dotted syntax
homework.param1 = "you won't believe it"
homework.param2 = 'but the dog ate it'
print(homework.param1)
print(homework.param2)