我需要创建一个名为Color的类。
- 代码1构造函数
- 这需要2个参数
- 代码2属性
- 1个属性是公开的
- 1个属性是私有的
- 为1个私有财产创建访问器和设置器
- 实例化上面创建的类</ li>
- 输出两个属性
我相信我已经能够创建类以及构造函数,但是我遇到的问题是公共/私有属性以及其他部分使我感到困扰。
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()
答案 0 :(得分:1)
使用python @property
的getter和setter装饰器,从实例对它们的调用是无法区分的。
内部工作遵循针对私有属性的主要下划线约定,而无需诉诸double underscore name mangling。
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)