[python学习]类的建立

# class phone:
#     '''
#     限制,不允许添加属性
#     '''
#     __slots__=["cpu"]

#     def call(self,num):
#         print("用cpu:%s打电话给%s"%(slef.cpu,num))

#print(phone.__dict__)
#iphone=phone()

#iphone.cpu="A11"
# print(iphone.cpu)

# iphone=phone()
# iphone.call("110")
'''
__new__才相当与c++的构造方法
__init__相当于初始化
前面有双下划线变成私有,并进行改名处理,不同的解释器改名方式不同
getter和setter:
        通过内置方法对私有变量进行访问和设置,从而达到访问私有变量的目的
        字符串设为None
        单下划线是可以直接访问的,但是是约定俗称的私有变量,尽量不去用。
同理方法前面加上双下划线也就是私有方法,一个下划线也是
'''
class phone:
    def __init__(self,name):
        self.__name=name
        self._cpu=None
    def setname(self,name):
        if len(name)>10:
            print("名字不能超过10个字符")
            return
        self.__name=name
    def getname(self):
        return self.__name
    def setcpu(self,cpu):
        self._cpu=cpu
    def getcpu(self):
        return self._cpu
    def __connect(self):
        print("连接基站")
    def _private(self):
        print("可访问的私有方法")
iphone=phone("iphone")
#print(iphone._phone__name)
#这种方法能访问但不建议

#print("iphone.__dict__:",iphone.__dict__)

#print("phone.__dict__:",phone.__dict__)

# iphone.setname("apple")
# print(iphone.getname())
# iphone.setcpu("amd")
# print(iphone.getcpu())
iphone._private()

猜你喜欢

转载自www.cnblogs.com/cyber-shady/p/11588215.html