저는 파이썬을 처음 접했지만 마음에 들었습니다. 첫 번째 Python 프로젝트를 시작하고 프로토 타이핑을하고 있습니다. "Python 철학"은 타이핑과 예외에 관해 나를 혼란스럽게합니다. 누군가이 발췌 부분에서 촬영할 수 있습니까? 기본적인 파이썬 방법론을 엔지니어링하거나 누락 했나요?파이썬 클래스 강화 또는 엔지니어링
class URIPartError(Exception):
pass
class WCFClient(object):
def __init__(self, host, scheme='http', port=80, path='/', user=None, password=None):
super(WCFClient, self).__init__()
#Store our variables
try:
self.__host = str(host).lower()
self.__scheme = str(scheme).lower()
self.__port = int(port)
self.__path = str(path)
self.__user = str(user) if user else None
self.__password = str(password) if password else None
except (TypeError, ValueError), e:
raise URIPartError('Invalid URI part')
#Are our inputs valid?
if not self.__scheme == 'http' and not self.__scheme == 'https':
raise URIPartError('Invalid URI scheme')
if not path.startswith('/') or not path.endswith('/'):
raise URIPartError('Invalid URI path')
#Generate valid URI for baseurl
if (self.__scheme == 'http' and self.__port == 80) or (self.__scheme == 'https' and self.__port == 443):
self.__baseurl = '{0}://{1}{2}'.format(self.__scheme, self.__host, self.__path)
else:
self.__baseurl = '{0}://{1}:{2}{3}'.format(self.__scheme, self.__host, self.__port, self.__path)
def baseurl(self):
return self.__baseurl
고마워요! , 정말 이해가되지 않습니다 (파이썬 2.x를 사용하는 경우 BTW에만 파이썬 3이 기본이기 때문에, 의미가 있습니다) object
에서 WCFClient
상속이 object
클래스의 생성자를 호출하는 방법으로보고
나를 잘 보입니다. – Denis
나에게 단단한 것처럼 보입니다! – msvalkon
괜찮아 보이는군요. 비록 당신의 속성에 이중 밑줄 이름을 사용하는 것을 다시 생각해 보길 권합니다. 이러한 속성은 하위 클래스에서 액세스 할 수 없으므로 클래스를 확장하는 것이 어려워집니다. 이들을 "개인용"으로 표시 할 필요가있는 경우 맨 앞에 하나의 밑줄을 사용하십시오. 비공개로 표시하는 특별한 이유가 없으면하지 말고 밑줄없이 일반 이름을 지정하십시오. – BrenBarn