Self
определяется во время компиляции, а не во время выполнения. В вашем коде Self
в точности эквивалентен UIViewController
, а не «подкласс, который вызывает это». Это вернет UIViewController
, и вызывающий должен будет as
перевести его в правый подкласс. Я предполагаю, что это то, чего вы пытались избежать (хотя это обычный способ какао), поэтому просто возвращение UIViewController
, вероятно, является лучшим решением).
Примечание: вы должны не следует называть функцию initialize
в любом случае. Это существующая функция класса NSObject
и в лучшем случае приведет к путанице. Ошибки в худшем случае.
Но если вы хотите избежать as
вызывающего абонента, подклассом обычно не является инструмент для добавьте функциональность в Swift. Вместо этого вам обычно нужны дженерики и протоколы. В этом случае вам нужны только дженерики.
func instantiateViewController<VC: UIViewController>(storyboardName: String, storyboardId: String) -> VC {
let storyboad = UIStoryboard(name name: storyboardName, bundle: nil)
let controller = storyboad.instantiateViewControllerWithIdentifier(storyboardId) as! VC
return controller
}
Это не метод класса. Это просто функция. Здесь нет необходимости в классе.
let tvc: UITableViewController = instantiateViewController(name: name, storyboardId: storyboardId)
Вы можете изменить, какой питон вы используете с вашей IDE, если вы уже загрузили python 3.x, его не должно быть слишком сложно переключить. Но ваш скрипт отлично работает на python 3.x, я просто изменил бы
print ("your name is" + input_variable)
на
print ("your name is", input_variable)
. Поскольку в запятой он печатает с пробелом между your name is
и независимо от введенного пользователем. И: если вы используете 2.7, просто используйте raw_input
вместо ввода.
Для всех, кто может столкнуться с этой проблемой, выясняется, что даже если вы включили #!/usr/bin/env python3
в начало вашего скрипта, shebang игнорируется, если файл не является исполняемым.
To определите, является ли ваш файл исполняемым:
./filename.py
из командной строки -bash: ./filename.py: Permission denied
, запустите chmod a+x filename.py
./filename.py
Если вы включили import sys; print(sys.version)
, как предложил Кевин, теперь вы увидите, что скрипт интерпретируется python3
Вы можете либо сделать:
x = raw_input("enter your name")
print "your name is %s " % x
, либо:
x = str(input("enter your name"))
print "your name is %s" % x
Вы используете Python 2, а не Python 3. Для этого в Python 2 используйте raw_input
.
input_variable = raw_input ("Enter your name: ")
print ("your name is" + input_variable)
input_variable = input («Введите ваше имя:») print («ваше имя« + input_variable »)
u необходимо вводить ввод в виде одиночных или двойных qoutes
Для python 3 и выше
s = raw_input ()
он решит проблему на IDE pycharm, если вы решаете на онлайн-сайте точно hackerrank, а затем используйте:
s = input()
вы должны использовать raw_input, потому что используете python-2.7. Когда вы используете input () для примера переменной: s = input ('Name:'), он выполнит команду ON Python Environement Without Saving. Что вы написали на переменной (-ах) и создании ошибки Если то, что вы написали, не определено, значит, вы можете использовать raw_input (), он правильно сохранит то, что вы написали в переменной, например: f = raw_input ('Name:') и он не выполнит его в среде python без создания любой возможной ошибки
input_variable = raw_input('Enter Your Name : ')
print("Your Name Is : " + (input_variable))
Поскольку вы пишете для Python 3.x, вы хотите начать свой скрипт с помощью:
#!/usr/bin/env python3
Если вы используете:
#!/usr/bin/env python
По умолчанию к Python 2.x. Они идут в первой строке вашего скрипта, если нет ничего, что начинается с #! (ака shebang).
Если ваши скрипты начинаются с:
#! python
Затем вы можете изменить его на:
#! python3
. Хотя это более короткое форматирование распознается только несколькими программами, такими как пусковая установка, поэтому это не лучший выбор.
Первые два примера гораздо более широко используются и помогут гарантировать, что ваш код будет работать на любой машине, на которой установлен Python.