一、定义类的属性
1、直接在类中定义
2、在类的构造函数中定义
二、访问控制
python中没有访问控制,依靠python的编程规范,命名规则控制。
class Programmer:
def __init__(self, name, age, salary):
self.name = name
self._age = age
self.__salary = salary
programmer = Programmer('Mike', 23, 100000)
print(programmer.__dict__)
# 输出结果为: {'name': 'Mike', '_age': 23, '_Programmer__salary': 100000}
print(programmer.name)
# 输出结果为:Mike
print(programmer._age)
# 输出结果为:23
print(programmer._Programmer__salary)
# 输出结果为:100000
三、区分函数和方法的概念
函数是直接通过函数名调用的;方法是依附于一个类,通过对象名.方法名调用。
四、类的方法
python中类的方法也可以看作类的属性。
方法的访问控制和属性的访问控制相同。
@classmethod
调用方法时用类名调用,而不是某个实例。
@property
像访问属性一样调用方法
示例如下:
class Programmer:
hobby ='playing games'
def __init__(self, name, age, salary):
self.name = name
self._age = age
self.__salary = salary
def get_name(self):
print(self.name)
@classmethod
def get_age(cls):
print(cls.hobby)
@property
def get_salary(self):
print(self.__salary)
programmer = Programmer('Mike', 23, 100000)
print(dir(programmer))
programmer.get_name()
Programmer.get_age()
programmer.get_salary